14.5 输入流

    本节来讨论输入的相关内容,输入是相对程序而言的,即如何从键盘或外部给程序提供数据,头文件iostream中定义了istream流类库对象cin,cin的使用方法相信读者已经很熟悉了,那就首先从操作符>>说起。

    14.5.1 >>操作符

    在流类库中,>>称为抽取操作符(Extraction Operator),istream类中已预先以成员函数的形式重载了C++基本类型(如char、int、long和double等)的>>操作符处理函数,其基本类型如下所示。


    istream&operator>>(基本类型&);在前面的示例代码中曾使用>>通过键盘对基本类型变量赋值,如下例所示。 int x=0; cin>>x;等价于下述代码。 cin.operator>>(x);//对应原型为cout.operator>>(int&)

    通过传递引用的方式,保证了抽取操作处理的变量x自身,而不是像传值操作那样处理其副本,因此,cin能直接修改作为参数的变量的值。

    >>操作符的返回类型都为istream&,这说明cin可以和cout一样,实现链式输入或称拼接输入,如下所示。


    double x; int y; char z[10]; cin>>x>>y>>z;>>的结合顺序为从左到右,上述代码等价下述代码。 ((cin.operator>>(x)).operator>>(y)).operator>>(z);

    说明

    对C风格字符串的输入操作请参考第3章的相关内容。