isblank()无法识别

时间:2017-03-19 13:24:13

标签: c++ char ctype

似乎gcc编译器无法识别cctype头的isblank()函数。我使用代码块,我得到:

错误:' isblank'未在此范围内声明

我检查了gcc cctype标头,发现了以下几行:

   81 #ifdef __GXX_EXPERIMENTAL_CXX0X__
   82 
   83 #ifdef _GLIBCXX_USE_C99_CTYPE_TR1
   84 
   85 #undef isblank
   86 
   87 namespace std
   88 {
   89   using ::isblank;
   90 } // namespace std
   91 
   92 #endif // _GLIBCXX_USE_C99_CTYPE_TR1
   93 
   94 #endif // __GXX_EXPERIMENTAL_CXX0X__
   95 
   96 #endif

如何让isblank()工作?这些线基本上是关于什么的?

更新

我的代码:

#include <iostream>
#include <cctype>

using namespace std;

int main()
{
    char ch;

    cout << "\n\n\n Enter a character:  ";
    cin >> ch;

    if (isblank(ch))
        cout << "\n blank characters.";

    cout << "\n\n\n";
}

代码块版本:16.01 来自TDM-GCC的GCC / G ++编译器和GDB调试器(版本4.9.2,32位,SJLJ)。

1 个答案:

答案 0 :(得分:2)

行,

全心全意,

我通过清除已检查的编译器标志来实现它:

设置 - &gt;编译器设置 - &gt;编译器标志 - &gt; -std = C ++ 14H

但是,我确信这会影响其他一些程序。我记得我设置了这个标志,因为没有它,其他一些功能都没有用。

使用其他编译器是MinGW64或MSVC ++等评论中提到的另一种选择。

link可能对您有用:

再次感谢。