c++问题while(cin>>x)怎么用eof结束?

2024-11-30 05:06:06
推荐回答(4个)
回答1:

EOF是一个宏,使用int型的变量去保存输入值,与之比较。。。。使用char值保存EOF输入值会溢出。。。一般EOF的值是-1
表示一个流读结束了。
对于一个文件来说,读尽最后一个字节算做结束。
对于标准输入(也就是一般的键盘输入),需要人为的产生一个EOF,告诉系统输入结束了。Unix/Linux下一般使用Ctrl+d,Dos/Windows下是Ctrl+z
注意: 还要加一个回车 ……

我用你的程序试了一遍没有问题,按 Ctrl+z 组合键;
另外既然包含了iostream,输出换行可以使用
cout<

回答2:

对于标准输入(也就是一般的键盘输入),需要人为的产生一个EOF,告诉系统输入结束了。Unix/Linux下一般使用Ctrl+d,Dos/Windows下是Ctrl+z
注意: 还要加一个回车 ……
此时cin流已经处于无效状态了,如果下文要继续使用cin需要加语句cin.clear(),使流处于有效状态。

回答3:

cin >> c 返回的类型是ostream,当将ostream类型当做bool型使用,cin操作失败,返回false,成功返回true.
另外说下cin >> 的重载问题,应该知道cin >>c 语句相当于cin.operator >> (c),很明显函数参数不对,就会产生错误。

回答4:

我用的VS2010,输入ctrl+C会出错,输入ctrl+Z 回车 就行了
输入eof不是真的把这三个字母输进去,否则如果真的需要输入这三个字母不是没办法了?eof是表示输入一些特殊字符使cin返回值为eof(出错,值为0)比如ctrl+C或ctrl+Z