转载来自:http://maochong.xin/2018/01/15/stdcin/
在C语言中,如果遇到需要读取不定数量的数据时,通常使用
|
|
的方式来实现
而在C++中就简单了一些。
C++可以通过std::cin通过流^(1)读取数据,比如以下代码
|
|
这段代码是从流读取一个整数,保存在value中。输入运算符返回左侧运算对象^(2)。也就是说以上代码的循环条件也就是检测std::cin。
使用istream对象^(3)作为运算条件时,是在检测流的状态。如果流有效那么会继续输入,遇到EOF或者无效的输入时istream就会变为无效,运算条件为假,然后结束这个循环。
以上,也就解释了C++循环读取一个不定数量的数据的原理。
1.C++流是指信息从外部输入设备(如键盘和磁盘)向计算机内部(即内存)输入和从内存向外部输出设备(如显示器和磁盘)输出的过程,这种输入输出过程被形象地比喻为”流”。参考C++流的概念
2.输入运算符 >> 与输出运算符 << 接受一个istream作为左侧运算对象,接受一个对象作为右侧运算对象。从给定的istream接受或输出数据,接受的数据会存入给定对象中,输出运算符则是返回左侧运算对象作为其计算结果。
3.标准中定义的std::cin就是istream类型。