while(cin>>n)结束循环

暂时找到的1个靠谱的方法

1、ctrl+z(先按enter键后ctrl+z)

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


你可能感兴趣的:(c++)