cin:格式输出/缓冲区状态/clear

类型输入

  • 支持c++内置的所有基本数据类型(istream类重载了抽取运算符<< ,>>)
  • 将标准输入表示为字节流,根据参数类型对字节流进行类型转换
  • 空白字符(空格、换行符、和制表符)跳过,直到遇到非空白字符。
  • 类型不符不赋值,返回0,经常被放在循环条件中来终止循环

返回值: 地址或0

cin >>返回值的类型是basic_istream&,代表cin的地址。在ios.h文件中定义了类型转换函数:

operator void *() const { if(state&(badbit|failbit) ) return 0; return (void *)this; }

有这个函数定义后,需要时ios类型转换成void*类型。而在读入发生错误时返回0。

所以因为类型不确定,cin的返回值不能赋给一个变量;判断结尾可以直接放到条件框中,或者检查cin之后变量有没有改变

缓冲区状态

目前只知道读取类型不符会转到“错误”状态,用cin.clear可以修改为有效状态

转载于:https://www.jianshu.com/p/6d982bad6a3e

猜你喜欢

转载自blog.csdn.net/weixin_34025151/article/details/91337517