看来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/