while(scanf(“%S%s",a,b)!=EOF)总是等输入两次eof才退出?

PainPain0 2012-01-09 12:30:33
我怎么改成下面这样了还是没办法让程序收到一个EOF(^z)就退出呢?
程序总是等到两个输入都是^z 才会退出。。
怎么回事?
while(1){
//reverse(a);
//reverse(b);
if(scanf("%s",a)==EOF){return 0;}



if(scanf("%s",b)==EOF){return 0;}
...全文
711 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahaxiaohuo2015 2012-05-06
  • 打赏
  • 举报
回复
输入完之后 回车换行 Ctrl+z 换行Ctrl+z 两次
猪头小哥 2012-05-06
  • 打赏
  • 举报
回复
学习了。
[Quote=引用 9 楼 的回复:]

windows认为,如果缓冲中还有其它内容,ctrl+z不表示输入结束,仅代表当前行输入结束,只在单独一个ctrl+z的时候才表示输入结束。
[/Quote]
AnYidan 2012-05-06
  • 打赏
  • 举报
回复
windows认为,如果缓冲中还有其它内容,ctrl+z不表示输入结束,仅代表当前行输入结束,只在单独一个ctrl+z的时候才表示输入结束。
lvjing_CSDN 2012-01-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 anyidan 的回复:]
引用 2 楼 nnrroo 的回复:

输入完之后 " 先回车 再 ^Z 再 回车 " 就行了!

应该是这样的!


输入^Z时必须是新行
[/Quote]
++
JackBurd 2012-01-15
  • 打赏
  • 举报
回复
Enter和Ctrl+Z
mingchaoyan 2012-01-09
  • 打赏
  • 举报
回复
代码贴完整
楚天乐 2012-01-09
  • 打赏
  • 举报
回复
scanf(“%s%s",a,b)
这个语句本身是要求输入两个变量的啊
这条语句在输入两个变量之后才结束
while才去判断结果的真假

所以两次输入是必然的啊
AnYidan 2012-01-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nnrroo 的回复:]

输入完之后 " 先回车 再 ^Z 再 回车 " 就行了!

应该是这样的!
[/Quote]

输入^Z时必须是新行
一鸣惊人 2012-01-09
  • 打赏
  • 举报
回复
刷新下缓冲区
狂且 2012-01-09
  • 打赏
  • 举报
回复
输入完之后 " 先回车 再 ^Z 再 回车 " 就行了!

应该是这样的!

69,371

社区成员

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

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