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

错误:未在此范围内声明“ 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(版本4.9.2,32位,SJLJ)中的GCC / G ++编译器和GDB调试器。

最佳答案

好,

谢谢大家

我通过清除选中的编译器标志来使其工作:

设置->编译器设置->编译器标志-> -std = c ++ 14h

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

如注释中所述,使用其他编译器是另一个选择,如MinGW64或MSVC ++。

link可能对以下内容很有用:

再次感谢。

关于c++ - isblank()无法识别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42887101/

10-11 16:24