0

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 GCC/G++ 编译器和来自 TDM-GCC 的 GDB 调试器(版本 4.9.2,32 位,SJLJ)。

4

1 回答 1

2

好的,

谢谢大家,

我通过清除选中的编译器标志让它工作:

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

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

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

链接可能有助于阅读:

再次感谢。

于 2017-03-19T19:56:27.510 回答