C++标准输入流

所谓标准输入,是指从标准输入设备中输入设备。通常来讲,我们可以将标准输入设备理解为键盘。

cin 是标准输入类对象,它一般与输入操作符>>一起使用。输入的过程是这样的:键盘输入完数据后按下回车键,该行数据就被写入输入缓冲区中,之后输入操作符从缓冲区中提取数据,在提取的过程中会忽略空格、Tab 键以及换行符等空白字符。

如果输入流处于正常状态,则 cin 的返回值为 true,否则返回的是 false。当 cin 遇到错误的字符或文件结束符时,输入就会处于非正常状态,此时返回值为 0,终止所有数据输入操作。

举个例子:
#include < iostream >
using namespace std;

int main()
{
    int a;
    while ( cin >> hex >> a )
    {
        cout << a << endl;   
    }
    cout << "The end!" << endl;
    return 0;
}
在本例中,我们采用循环输入的方式,将输入数据然后直接输出。因为 cin 返回的也是 bool 类型,因此可以作为条件判断表达式。

在 cin 后面,我们使用了不带参数的操纵器 hex,用此操纵器表明输入的是 16 进制数据。在输出的时候,我们并没有设置为 16 进制输出,因此系统通过内部函数将其由输入的 16 进制转换为 10 进制,然后输出。当我们输入的字符不在 0-9、a-f 以及 A-F 范围内时,cin 就会处于非正常状态,返回值为 false,退出 while 循环,之后输出 The end 结束程序。