getchar() EOF 如何结束?

xiangqian0709 2012-07-24 09:02:32
#include <stdio.h>

int main(){

int c;

c=getchar();

while((c = getchar()) != EOF){
printf("true\n");
putchar(c);
c=getchar();
}


}


不停的输入

如何结束?


...全文
628 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-07-24
  • 打赏
  • 举报
回复
ctrl+z,enter
xiangqian0709 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

http://bbs.chinaunix.net/thread-981231-1-1.html
[/Quote]\

EOF 在文件中是不存在的

你可以这么认为 没有\n 就是结尾
或者 取不到值
要不然会数组越界
  • 打赏
  • 举报
回复
楼主可能是新手,要输入一个新的换行之后再输入一个ctrl+ z(按下ctrl之后按一下键盘z),就能停止输入了
skyWalker_ONLY 2012-07-24
  • 打赏
  • 举报
回复
EOF 在linux下是ctrl+D,windows ctrl+Z
宵怀 2012-07-24
  • 打赏
  • 举报
回复


[Quote=引用 4 楼 的回复:]
http://bbs.chinaunix.net/thread-981231-1-1.html
[/Quote]


++
nanjingnew4 2012-07-24
  • 打赏
  • 举报
回复
EOF 在linux下是ctrl+D,windows ctrl+Z
左眼看到鬼 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

while((c = getchar()) != EOF)

当文件末尾的时候,getchar()得到的将是 EOF(end of file)

此时循环条件不成立,程序流结束循环
[/Quote]
这样可以
AnYidan 2012-07-24
  • 打赏
  • 举报
回复
windows认为,如果缓冲中还有其它内容,ctrl+z不表示输入结束,仅代表当前行输入结束,只在单独一个ctrl+z的时候才表示输入结束。
W170532934 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

ctrl+z
[/Quote]
+++
心死 2012-07-24
  • 打赏
  • 举报
回复
ctrl+z
ies_sweet 2012-07-24
  • 打赏
  • 举报
回复
while((c = getchar()) != EOF)

当文件末尾的时候,getchar()得到的将是 EOF(end of file)

此时循环条件不成立,程序流结束循环
艳琦罗生 2012-07-24
  • 打赏
  • 举报
回复
ctrl+z

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧