作者FFranKK122 (法兰克的两难)
看板C_and_CPP
标题[问题] EOF 要输入两次
时间Sat Jul 15 13:49:57 2017
开发平台(Platform): (Ex: Win10, Linux, ...)
Win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Dev c++
问题(Question):
用scanf读一个整数 在%d前面打一个空格
使用EOF当终止条件 ctrl+z要输入两次
while( scanf(" %d", &x) != EOF ){
printf("%d\n", x);
}
预期的正确结果(Expected Output):
按一次 ctrl+z 可以结束程式
错误结果(Wrong Output):
要按两次 ctrl+z
会有这个问题 纯粹好奇
问题来自 交大开放课程 郑昌杰老师第二章的讲义
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.95.188
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1500097799.A.DCE.html
※ 编辑: FFranKK122 (114.42.95.188), 07/15/2017 13:50:49
1F:→ Ommm5566: 爱惜生命远离dev 07/15 21:05
2F:→ Hazukashiine: 还是可以用啦 但是gcc记得要更新 只是我能不能换 07/16 01:27
3F:→ Hazukashiine: 给我 notepad 我也能打 code XD 07/16 01:27
4F:→ Hazukashiine: ^ 不知道 07/16 01:28
5F:推 qscgy4: scan 我是不知道。但是以一般读档而言,eof旗标是必须读到 07/16 07:54
6F:→ qscgy4: 底,再读一次所产生的。 07/16 07:54
7F:→ MOONRAKER: 在linux环境下有时^D後也要enter 不要管这种小事 07/17 11:43