cin 可以用来从键盘输入数据;将标准输入重定向为文件后,cin 也可以用来从文件中读入数据。在输入数据的多少不确定,且没有结束标志的情况下,该如何判断输入数据已经读完了呢?
从文件中读取数据很好办,到达文件末尾就读取结束了。从控制台读取数据怎么办呢?总不能把控制台关闭吧?这样程序也运行结束了!
其实,在控制台中输入特殊的控制字符就表示输入结束了:
在 Windows 系统中,通过键盘输入时,按 Ctrl+Z 组合键后再按回车键,就代表输入结束。
在 UNIX/Linux/Mac OS 系统中,Ctrl+D 代表输入结束。
不管是文件末尾,还是 Ctrl+Z 或者 Ctrl+D,它们都是结束标志;cin 在正常读取时返回 true,遇到结束标志时返回 false,我们可以根据 cin 的返回值来判断是否读取结束。
cin 判断控制台(键盘)读取结束
输入若干个正整数,输出其中的最大值,程序该如何编写?
#include
using namespace std;
int main()
{
int n;
int maxN = 0;
while (cin >> n){ //输入没有结束,cin 就返回 true,条件就为真
if (maxN < n)
maxN = n;
}
cout << maxN <
return 0;<