【问题标题】:isblank() is not recognizedisblank() 无法识别
【发布时间】:2017-08-10 18:10:23
【问题描述】:

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

【问题讨论】:

标签: c++ char ctype


【解决方案1】:

好的,

谢谢大家,

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

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

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

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

link 可能对阅读有用:

再次感谢。

【讨论】:

  • 考虑升级你的编译器,例如您可以使用没有问题的 mingw-w64 的最新版本。 4.9.2 现在已经很老了。
猜你喜欢
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-20
  • 2018-06-18
  • 2013-04-19
  • 2019-01-28
  • 2019-11-01
相关资源
最近更新 更多