读书人

对cin的不解一段小代码搞不明白啊

发布时间: 2012-02-17 17:50:42 作者: rapoo

对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();

就好了

读书人网 >C++

热点推荐