重载的抽取操作符 >>
istream类(在头文件iostream中定义)重载了抽取操作符 >> ,使之能够识别下面的这些基本类型:
signed char & unsigned char &
char & short &
unsigned short & int &
unsigned int & long &
unsigned long & float &
double & long double &
这些操作符函数被称为格式化输入函数(formatted input functions) ,因为它们可以将输入数据转换为目标指定的格式。
典型的操作符函数的原型如下:
istream & operator>> (int &);
参数和返回值都是引用。因此cin能够直接修改用作参数的变量的值。
可以将hex、oct和dec控制符与cin一起使用,来指定将整数输入解释为十六进制、八进制还是十进制格式。例如:
cin >> hex;
将输入12或0x12解释为十六进制的12或十进制的18,而将ff或FF解释为十进制的255。
该类还为下列字符指针类型重载了>> 抽取操作符:
signed char * char * unsigned char *
对于这种类型的参数,抽取操作符将读取输入中的下一个单词,将它放置到指定的地址,并加上一个空值字符,使之成为一个字符串。
每个抽取操作符都返回调用对象的引用,这使得能够将输入拼接起来,就像拼接输出那样:
char name[20];
float fee;
int group;
cin >> name >> fee >> group;
cin>> 如何检查输入
cin>> 跳过空白(空格、换行符和制表符),直到遇到非空白字符。
在单字符模式下,>>操作符将读取该字符,将它放置到指定的位置。
在其他模式下,>>操作符将读取一个指定类型的数据。它的读取从非空白字符开始,到与目标类型不匹配的第一个字符之间的全部内容。
当输入未满足程序的期待时,抽取操作符将不会修改参数的值,并返回0(false)。
流状态
cin或cout对象包含一个描述流状态(stream state) 的数据成员(从ios_base类那里继承的)。
流状态被定义为iostate 类型,而iostate是一种bitmask 类型。由3个ios_base元素组成: eofbit 、badbit 和
istream类方法 重载的抽取操作符 和 cin输入
最新推荐文章于 2023-07-14 19:29:11 发布