看来 cctype 头文件的 isblank() 函数没有被 gcc 编译器识别。我使用代码块并得到:
错误:“isblank”未在此范围内声明
我检查了 gcc cctype header 并发现了以下几行:
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/