我需要逐个字符地阅读键盘中的字符序列,我花了几个小时卡住并搜索网络无济于事。请告诉我为什么这个循环不会终止。我确信答案很简单,我可以在事后面对自己。
char c;
c = cin.get()
while(cin.good())
{
DoSomething(c);
c = cin.get();
}
为什么这个循环会无限期地继续下去?如何解决?我通常会使用一个字符串和一个istringstream,但我正处于初学者编程课程中,不幸的是我们不允许这样做或使用任何巧妙的技巧。我们被特别告知使用cin。
答案 0 :(得分:1)
#include <iostream>
using namespace std;
int main(int argc, const char *argv[])
{
char ch;
while(cin >> ch){
cout << " Char is : " << ch << endl;
}
return 0;
}
答案 1 :(得分:1)
您希望输入流在什么时候变坏或变空?
你不能从stdin读取字符,因为它需要键盘输入 - 也就是说,它需要等待非常长时间让用户按下一个键。
因此,决定退出读取的字符,当读取该字符时,退出循环。