只是为了好奇的心灵。在问题解决期间,许多问题说,“输入将由 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 如何在程序终止时起作用。它背后的原因是什么?请详细解答。
答案 0 :(得分:2)
Ctrl + z 不会终止您的程序。它也不会暂停执行。它是一个0x1A字节,由iostream
和stdio
方法解释为EOF(文件结束)。从控制台读取该字符后,不会再读取任何内容,并且正在读取它的方法返回。在iostream
的情况下,std::ios::eof()
变为真。
在上一个案例中,您会注意到,如果您将其结构化为:
while(cin >> a) { ... }
它会像其他人一样退出。