这是我的代码:
int n;
while (cin >> n)
{
if (cin.eof())
cout << "到达文件末尾" << endl;
if (cin.fail())
cout << "输入错误" << endl;
if (cin.bad())
cout << "输入流崩溃" << endl;
if (cin.good())
cout << "输入流正常" << endl;
cout << n << endl;
}
cout << "结束循环" << endl;
if (cin.eof())
cout << "到达文件末尾" << endl;
if (cin.fail())
cout << "输入错误" << endl;
if (cin.bad())
cout << "输入流崩溃" << endl;
if (cin.good())
cout << "输入流正常" << endl;
cout << n << endl;
return 0;
我输入 3.0 之后的结果:
为什么在循环里内,输入流还是正常,结束循环后就错误了呢?而且值也变为0了。
最后,有没有关于输入输出方面的书或资料的推荐呢?《c++primer》上讲的不是很多。
感谢!
你输入 “30”, “abc”, “3.0”, 分别会出现什么结果,可以自己分析一下。
当我输入”3.0“,时候,应该只是读入了“3”,此时流正常;下个循环遇到“.”,流错误,跳出循环,并且流的值被重置为0?