关于检测文件尾的问题
以下是一个简单的程序,将输入的字符在屏幕上回显:#include"iostream"
using namespace std;
main()
{
char ch;
cin>>ch;
while(ch!=EOF)
{
cout<<ch;
cin>>ch;
}
cout<<endl;
return 0;
}
问题:
(1)以上程序运行情况:
输入:abc (回车)
显示:abc (回车)
输入:ctrl+Z (回车)
输入:ctrl+Z (回车)
最后结果是屏幕不停地打印字符c,停不下来。
(2)我把while(ch!=EOF)改为while(cin),运行情况如下:
输入:abc (回车)
显示:abc (回车)
输入:ctrl+Z (回车)
输入:ctrl+Z (回车)
结束。
程序虽然结束了,但是为什么一定要两次输入ctrl+Z呢?
希望明白的网友对这两种情况都作一下分析,谢谢!