程序是这样的:

#include <iostream>
using namespace std;
int main()
{
int n;
while(true)
{
cin>>n;
cout<<"cout"<< n<<endl;
}
return 0;
}
输出结果:
1111
cout1111
2222
cout2222
1111
cout1111
1111
cout1111
1111
cout1111
rrr
cout1111
cout1111
cout1111
cout1111
cout1111

当我输入rrr后,cin语句就没用了,然后程序一直就输出cout1111 请问有什方法能决绝这个问题?谢谢!

推荐图书

  • C++ Primer中文版(第4版)
  • More Effective C++:35个改善编程与设计的有效方法(中文版)
  • 设计模式:可复用面向对象软件的基础


1个回答

#include <iostream>
using namespace std;
int main()
{
    int n;
    while(true)
    {
        cin>>n;
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(),'\n');
        cout<<"cout"<< n<<endl;
    }
    return 0;
}