为了测试 bool i/o,我尝试运行这个短程序:
#include <iostream>
int main()
{
while(true)
{
bool f;
if (std::cin >> f)
std::cout << f << '\n';
else
{
std::cout << "i/o error\n";
std::cin.clear();
}
}
return 0;
}
这是我得到的输出:
g++ -Wall -ansi -pedantic -o boolio boolio.cpp
./boolio
0
0
1
1
2
i/o error
-
i/o error
t
i/o error
i/o error
i/o error
... (infinite loop)
我想知道为什么当我输入“t”时会出现无限循环,以及如何防止它。
Thanks.
清除 cin 后添加此行:
std::cin.ignore();
这样,流就会忽略缓冲区中剩余的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)