Ctrl Z的实际工作原理

时间:2015-04-05 13:39:49

标签: c++ windows

只是为了好奇的心灵。在问题解决期间,许多问题说,“输入将由 Ctrl + z ”终止。我知道它的“EOF(文件结束)”但是......

while(scanf("%d",&a)==1)
{ cout<<"OK"<<endl;}

while(scanf("%d",&a)!=EOF)
{cout<<"OK"<<endl;}

while(cin>>a)
{cout<<"OK"<<endl;}

3以上将由 Ctrl + z 终止。

while(scanf("%d",&a))
{cout<<"OK"<<endl;}

Ctrl + z 即可。     和

while(1){cin>>a;
cout<<"OK"<<endl;}

它是一个infinte循环。

我想知道 Ctrl + z 如何在程序终止时起作用。它背后的原因是什么?请详细解答。

1 个答案:

答案 0 :(得分:2)

Ctrl + z 不会终止您的程序。它也不会暂停执行。它是一个0x1A字节,由iostreamstdio方法解释为EOF(文件结束)。从控制台读取该字符后,不会再读取任何内容,并且正在读取它的方法返回。在iostream的情况下,std::ios::eof()变为真。

在上一个案例中,您会注意到,如果您将其结构化为:

while(cin >> a) { ... }

它会像其他人一样退出。