我目前正在阅读 K&R 的书并输入第一部分的示例,其中有几个示例如下:
while((c = getchar()) != EOF) {
//do something
}
我正在 Windows 机器上测试这些示例,从而从cmd
提示符运行编译的 exe 文件。
为了测试上面的例子,我如何模拟一个EOF
?也就是说,基本上如何在命令提示符下测试示例时使循环停止?
我目前正在阅读 K&R 的书并输入第一部分的示例,其中有几个示例如下:
while((c = getchar()) != EOF) {
//do something
}
我正在 Windows 机器上测试这些示例,从而从cmd
提示符运行编译的 exe 文件。
为了测试上面的例子,我如何模拟一个EOF
?也就是说,基本上如何在命令提示符下测试示例时使循环停止?
要输入 EOF,请使用:
参考EOF
Windows: Ctrl+Z
Unix :Ctrl+D
首先,按:Ctrl^X,下一步:Ctrl^D
您还可以通过显式为 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;
}
按下Ctrl+d程序停止并返回 0后,我遇到了同样的问题。如果您使用Clion ,请按Ctrl+Shift+a,而不是键入 Registry,按 Enter 并确保run.processes.with.pty。未选中。之后再次编译程序,然后您可以输入输入,但不要在与输入相同的行上按Ctrl+d ,它将返回 0 或错误。