似乎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的GCC / G ++编译器和GDB调试器(版本4.9.2,32位,SJLJ)。
答案 0 :(得分:2)
行,
全心全意,
我通过清除已检查的编译器标志来实现它:
设置 - &gt;编译器设置 - &gt;编译器标志 - &gt; -std = C ++ 14H
但是,我确信这会影响其他一些程序。我记得我设置了这个标志,因为没有它,其他一些功能都没有用。
使用其他编译器是MinGW64或MSVC ++等评论中提到的另一种选择。
此link可能对您有用:
再次感谢。