C:如何模拟EOF?

时间:2009-07-13 11:33:00

标签: c eof getchar kernighan-and-ritchie

我目前正在阅读K& R的书并在第一部分的示例中输入内容,并且有几个例子如下:

while((c = getchar()) != EOF) {
    //do something
}

我正在Windows框中测试这些示例,从而在cmd提示符下运行已编译的exe文件。

要测试上面的示例,我该如何模拟EOF?也就是说,基本上如何在从命令提示符测试示例时停止循环?

5 个答案:

答案 0 :(得分:85)

要输入EOF,请使用:

    Windows中的
  1. ^ Z( Ctrl Z
  2. ^ D在类Unix系统上

答案 1 :(得分:21)

参考EOF

Windows: Ctrl+Z
Unix :Ctrl+D

答案 2 :(得分:2)

首先,按:Ctrl ^ X,下一步:Ctrl ^ D

答案 3 :(得分:1)

您还可以通过显式赋予int变量值-1来模拟EOF。

查看此代码以获得更清晰:

#include<stdio.h>

int main() {    
    // char ch=getchar()
    // int ch=-1;

    if(ch==EOF) { printf("\nEOF: %d",EOF); }
    if((ch!=EOF)==0) { printf("\nit is equal to 0"); }
    if((ch!=EOF)==1) { printf("\nit is equal to 1"); }
    else { printf("\n it is equal to other value"); }
    system("pause");
    return 0;
}

答案 4 :(得分:0)

Ctrl + d 程序停止并返回0后,我遇到了同样的问题。 如果您使用 Clion ,则按 Ctrl + Shift + a 而不是键入Registry,请按Enter,并确保未选中 run.processes.with.pty。。 再次执行该编译程序后,您可以输入输入,但是不要在与输入相同的行上按 Ctrl + d ,它将返回0或错误。