C++中 while(cin>> i)当碰到EOF(文件结束标记)循环会终止,而一般从键盘输入EOF是按下Ctrl+Z。


Ctrl+z并不会产生一个普通的ASCII码值,也就是说它不会产生一个字符,不会被放到输入缓冲区中,所以读不到它,你输入了就好像木有输入一样,它只能作为结束循环来用。
还有在Windows系统中,只有按下回车才会去检测之前有没有按下Ctrl+z,才会去检测流是否结束。就是在按下回车之前,输入缓冲区并不能检测到是否有Ctrl+z按下,所以即使按了Ctrl+z,照样还可以从键盘去输入内容,但是Ctrl+z这行输入的内容到时候并不会被读取到,因为在缓冲区检测时,如果检测到Ctrl+z(结束标志),就会认为输入流结束了,那么后边的内容就不会被读进去,而被丢掉。

 

cin>>a返回也是一个stream,所以while()就是判断这个stream的状态,鉴于你的a是int类型,因此上面的while循环,退出的方法有2个:
1) 输入任意一个非int类型的值,比如字母s或符号!什么的都可退出循环,继续执行。
2)标准的EOF,在Windows上面就是ctrl-c,xNix上是ctrl-d。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM