8.C++: while(cin>>a)问题

在洛谷P1320中,遇到了这样的输入

输入 #1

0001000
0001000
0001111
0001000
0001000
0001000
1111111
自己之前还真没见过,看到题解上用了while(cin>>a)
自己试了试,然后发现这玩意会一直让你输入,根本停不下来!

然后搜了一下,知道了ctrl+z可以让他停下来

在Windows系统中,只有按下回车才会去检测之前有没有按下Ctrl+z,才会去检测流是否结束。就是在按下回车之前,输入缓冲区并不能检测到是否有Ctrl+z按下,所以即使按了Ctrl+z,照样还可以从键盘去输入内容,但是Ctrl+z这行输入的内容到时候并不会被读取到,因为在缓冲区检测时,如果检测到Ctrl+z(结束标志),就会认为输入流结束了,那么后边的内容就不会被读进去,而被丢掉。

更多的内容参见https://blog.csdn.net/misayaaaaa/article/details/53332219

 

输入 #1

0001000
0001000
0001111
0001000
0001000
0001000
1111111
posted @ 2021-01-22 17:39  _翩若惊鸿  阅读(279)  评论(0)    收藏  举报