关于EOF
小弟,是个菜鸟,请各位大哥帮个忙?
下面这段代码运行后,怎么停下来,EOF怎么判断的?谢谢
#include <stdio.h>
#include <stdlib.h>
int
main()
{
int ch;
int line;
int at_begin;
line=0;
at_begin=1;
while((ch=getchar())!=EOF){
if(at_begin==1){
at_begin=0;
line+=1;
printf("%d",line);
}
putchar(ch);
if(ch=='\n')
at_begin=1;
}
return EXIT_SUCCESS;
}
问题点数:20、回复次数:7Top
1 楼johnnylee(Johnny)回复于 2005-04-10 11:04:03 得分 3
EOF就是Ctrl^Z
TC中可以直接在输入后面Ctrl^Z
VC中则要换行再Ctrl^ZTop
2 楼luoxq_263()回复于 2005-04-10 11:09:22 得分 1
用 ctrl+CTop
3 楼lsp69(浪子神剑)回复于 2005-04-10 11:15:11 得分 1
结束标志
用ctrl+cTop
4 楼pcboyxhy(-273.15℃)回复于 2005-04-10 11:21:37 得分 3
跟OS有关
有的是^Z
有的是^DTop
5 楼johnnylee(Johnny)回复于 2005-04-10 11:23:41 得分 10
EOF是一个表示结束的值,是用来输入的,当程序得到这个值后再根据代码的要求执行
而Ctrl^C是一个操作,一个中断程序执行的操作,而不是一个值
所以Ctrl^Z才是EOF
如果是
if ((c = getchar()) == EOF)
{
//................
}
那么你就必须输入Ctrl^Z而不能用Ctrl^C来代替Top
6 楼llf_hust()回复于 2005-04-10 11:27:26 得分 1
ctrl+zTop
7 楼luoxq_263()回复于 2005-04-10 11:29:34 得分 1
说得不错Top




