读书人

关于资料结束符为什么不是ctrl+z而是

发布时间: 2012-11-15 15:16:15 作者: rapoo

关于文件结束符为什么不是ctrl+z,而是shift+Z

C/C++ code
#include<iostream>using namespace std;int main(){    cout <<"Enter the numbers:";    int num;    int i=0;    while(cin >>num)    {        if(num<0)        {            ++i;        }    };    cout <<i <<endl;    return 0;}

这段代码是想输入一串整数,然后看看负数的又多少,结束不了,但是按shift+z就可以了,为什么啊
我上网查不是ctrl+z的吗

[解决办法]
Ctrl C是中断程序,程序强行退出
shift Z变成大写的Z,cin>>num解析失败,cin状态改变,while()判断为0,循环结束
[解决办法]
while(cin >>num)
{
if(num<0)
{
++i;
}
};

楼主这个while循环并不是判断Eof(Ctrl+Z是文件结束符),而是判断cin的状态。
[解决办法]
键盘上Shift和Ctrl键的位置颠倒了?!
[解决办法]
//输入shift+ z
C/C++ code
while(cin >>num) //'z' 或 'Z'不是合法的数字,所以退车循环,并没有结束输入流
[解决办法]
In UNIX systems it is Ctrl+D, in Windows Ctrl+Z
[解决办法]
探讨
Ctrl C是中断程序,程序强行退出
shift Z变成大写的Z,cin>>num解析失败,cin状态改变,while()判断为0,循环结束

读书人网 >C++

热点推荐