EOF的使用

1.我疑惑了

	char a[20];
	while(scanf("%s",a)!=EOF){
		cout<<"hello"<<endl;
	}


为什么要按两下ctrl+z 才能结束呢??


2.小插曲奋斗

http://zhidao.baidu.com/link?url=-2b2_s5futoSJOVPW4Q0_n2wsH5lvJxKvFe1PqZP0rY8EtF9dznVeTbTzSIuTFBJmkkZwPxMB2HtxOML3vDP7a

难过教你怎么用EOF结束程序:

scanf("%c%c%c"a,b,c);
if('a'=='E'&&'b'=='O'&&'c'=='F')
return 0;


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


问题算是找到答案了!

摘自

http://zhidao.baidu.com/link?url=Agbl2C1hwi1ibscwvzj6g40SRGgvIbySqNRNwuG7dJsS9IDFESagYuxjMpS9NK9UiOwGQBQw1GdMJ28yG1dxtYLj7nRXMwE1kB0J8bauYpm&from=commentSubmit#answers1576898808


当以%s输入字符串时需要按两次(ctrl+z)才能退出!!


当以%d输入数字是一次(ctrl+z)就可以退出了


这是为什么啊??



提问者采纳

这是vc6的 bug,因为getchar无此问题,%d无此问题,gcc无此问题。。。。 一个类似的bug(微软已经确认):http://bbs.linuxpk.com/home-space-uid-3973-do-blog-id-11952.html可以参考下。。。
提问者评价
谢谢!


原文地址:https://www.cnblogs.com/gongpixin/p/4477393.html