标准库定义了4个IO对象:
(1)标准输入cin
(2)标准输出cout
(3)标准错误cerr,其用来输出警告和错误信息
(4)clog,其用来输出程序运行时的一般性信息
使用标准IO读取数量不定的输入数据:
#include <iostream>
int main()
{
int sum = 0;
int value = 0;
// 读取数据直到遇到文件尾
while (std::cin >> value)
sum += value;
std::cout << "sum is: " << sum << std::endl;
return 0;
}
当遇到文件结束符(EOF),或遇到一个无效输入时(例如读入的值不是一个整数),istream对象的状态会变为无效。上述程序中的while循环会一直执行直至遇到文件结束符(或输入错误)。
当从键盘向程序输入数据时,对于如何指出文件结束,不同操作系统有不同的约定。在Windows系统中,输入文件结束符的方法是输入Ctrl+Z,然后按Enter键。在Linux和MacOS系统中,文件结束符输入使用Ctrl+D。
当你测试程序时,反复从键盘敲入记录作为程序输入是非常乏味的 。大多数操作系统支持文件重定向,这种机制允许我们将标准输入和标准输出与命名文件关联起来:
addItems <infile >outfile
其中addItems是我们已经编译生成的exe文件,则上述命令会从一个名为infile的文件读取记录,并将输出结果写入到一个名为outfile的文件中,两个文件都要位于当前目录中。