cin 可以用来从键盘输入数据;将标准输入重定向为文件后,cin 也可以用来从文件中读入数据。在输入数据的多少不确定,且没有结束标志的情况下,该如何判断输入数据已经读完了呢?
从文件中读取数据很好办,到达文件末尾就读取结束了。从控制台读取数据怎么办呢?总不能把控制台关闭吧?这样程序也运行结束了!
其实,在控制台中输入特殊的控制字符就表示输入结束了:
- 在 Windows 系统中,通过键盘输入时,按 Ctrl+Z 组合键后再按回车键,就代表输入结束。
注意:我的使用经验是, Windows 系统中,通过键盘输入时,先回车键另起一行后再按 Ctrl+Z 组合键后再按回车键,才能结束。
- 在 UNIX/Linus/Mac OS 系统中,Ctrl+D 代表输入结束。
不管是文件末尾,还是 Ctrl+Z 或者 Ctrl+D,它们都是结束标志;cin 在正常读取时返回 true,遇到结束标志时返回 false,我们可以根据 cin 的返回值来判断是否读取结束。
参考网页:
C++ cin判断输入结束(读取结束)c.biancheng.net