对cin的不解,一段小代码,搞不明白啊
编译运行了一段小代码,如下:
#include <iostream>
int main()
{
int sum = 0, value;
while(std::cin > > value)
sum += value;
std::cout < < "Sum is " < < sum < < std::endl;
char var;
std::cin > > var;
while(var != 'q ')
std::cin > > var;
return 0;
}
手工输入 1 2 w
输出 Sum is 3
光标移至下一行,然后无法输入任何字符
在第二个while循环体中,用cout输出var值,
发现程序在不停输出“|”,死循环。
迷惑中,请各位解释一下,谢谢。
[解决办法]
把程序加上
std::cin.clear();
std::cin.sync();
就好了