提问人:Andreas Grech 提问时间:7/13/2009 最后编辑:ppperyAndreas Grech 更新时间:2/22/2020 访问量:57857
如何模拟EOF?
How to simulate an EOF?
问:
我目前正在阅读 K&R 的书并输入第一部分的示例,有几个示例,例如:
while((c = getchar()) != EOF) {
//do something
}
我正在 Windows 机器上测试这些示例,从而从提示符运行编译的 exe 文件。cmd
为了测试上面的示例,如何模拟一个?也就是说,基本上如何在从命令提示符测试示例时使循环停止?EOF
答:
102赞
Greg Hewgill
7/13/2009
#1
要输入 EOF,请使用:
- Windows 中的 ^Z ()CtrlZ
- ^D 在类 Unix 系统上
评论
22赞
Johannes Schaub - litb
7/13/2009
一些有用的补充:如果你在一条不空的线上,你将不得不双击^D:按一次会刷新该行,再按一次会发送EOF。如果你在空行上,一个^D就足够了。
12赞
Greg Hewgill
7/13/2009
这就是 <kbd> HTML 元素。
2赞
M.M
9/23/2015
在 Windows 中,输入 ^Z 仅在行首执行时才会生成 EOF。
21赞
aJ.
7/13/2009
#2
参考 EOF
Windows: Ctrl+Z
Unix :Ctrl+D
1赞
user1616974
8/22/2012
#3
您还可以通过显式为 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;
}
评论
0赞
Alex
7/6/2015
嗯,它可能是与 -1 不同的值。-1 只是一个约定(或几个操作系统下的 EOF 值)
0赞
ATaco
7/3/2017
这并不能回答这个问题。
2赞
user3078185
12/8/2013
#4
首先,按:Ctrl^X,然后:Ctrl^D
1赞
Toffy_
11/10/2019
#5
按 Ctrl+d 程序停止并返回 0 后,我遇到了同样的问题。 如果使用 Clion,请按 Ctrl+Shift+a 而不是键入 Registry,按 Enter 并确保未选中 run.processes.with.pty.。 之后,再次编译程序,然后您可以键入输入,但不要在与输入相同的行上按 Ctrl+d,它将返回 0 或错误。
下一个:读取文件时遇到EOF不正确
评论