Chapter1 开始

来源:互联网 发布:师洋淘宝店铺生意好吗 编辑:程序博客网 时间:2024/06/06 17:10

关于Cin

Cin返回了什么?

int val;cout<<typeid(cin>>val).name();//输出为class std::basic_istream<char,struct std::char_traits<char> >//是一个istream对象

Cin返回了一个istream对象.

  • 作为条件判断语句
int val;while(cin>>val);cout<<"输入了与val类型不匹配的数据,或遇到了文件的结尾.";

当cin>>val读入与val的类型不匹配的数据或者遇到了文件的结尾时,while循环会终止.

当istream对象作为条件时,它的效果是检测流的状态. 当遇到无效输出及EOF时, istream对象的状态会变为无效, 并使条件变为假.


  • Cin为什么可以连续读入(如cin>>a>>b>>c;)?

如前文所说, cin会返回一个istream对象, 当正常读入时, istream是有效的, 可以继续读入下一个值; 一旦读入一个非法值, 当前及后续的读入都会失败, 好比 “断了链”.

int a,b,c;cin>>a>>b>>c;cout<<a<<" "<<b<<" "<<c<<endl;//输入 1 2 3//输出 1 2 3//输入 1 a 3//输出 1 -858993460 -858993460//输入a后读入失败, 并导致istream中断, 后续的数据也读入失败.

更改于2017-9-20 20:59:31