C++ C++;逐字阅读

C++ C++;逐字阅读,c++,input,C++,Input,我需要一个字符一个字符地读取键盘上的字符序列,我花了几个小时在网上搜索,结果一无所获。请告诉我为什么这个循环不会终止。我相信答案很简单,我可以在事后打自己的脸 char c; c = cin.get() while(cin.good()) { DoSomething(c); c = cin.get(); } 为什么这个循环会无限期地持续下去?如何修复它????我通常会使用字符串和istringstream,但我正在学习一门初级编程课程,不幸的是,我们不允许按自己的方式来做,也不允许

我需要一个字符一个字符地读取键盘上的字符序列,我花了几个小时在网上搜索,结果一无所获。请告诉我为什么这个循环不会终止。我相信答案很简单,我可以在事后打自己的脸

char c;
c = cin.get()
while(cin.good())
{
   DoSomething(c);
   c = cin.get();
}
为什么这个循环会无限期地持续下去?如何修复它????我通常会使用字符串和istringstream,但我正在学习一门初级编程课程,不幸的是,我们不允许按自己的方式来做,也不允许使用任何巧妙的技巧。我们被特别告知要使用cin。

#包括
#include <iostream>
using namespace std;

int main(int argc, const char *argv[])
{

  char ch;
  while(cin >> ch){
    cout << " Char is : " << ch << endl;
  }

  return 0;
}
使用名称空间std; int main(int argc,const char*argv[] { char ch; 而(cin>>ch){
cout您希望输入流在什么时候变坏或变空

你不能从标准输入中读取字符,因为它需要键盘输入,也就是说,它需要等待很长时间才能让用户按下下一个键


因此,决定一个要退出读取的字符,当该字符被读取时,退出循环。

尝试按Ctrl+Z或Ctrl+C终止。很好的一点是,我想在条件中使用isspace()函数,现在它读取到空白。