您的位置:首页 > 编程语言 > C语言/C++

C++---if(!cin)与if(!(cin >> xxx))

2015-10-10 21:15 519 查看
!cin,判断上一次的输入是否失败(fail)

!(cin >> xxx)判断当前输入是否失败(fail)


  对于流操作,都有它的条件状态,如stream.eof()、stream.fail()、stream.bad()、stream.good()。从下面的结果中就可以知道是怎么一回事了。

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
//输入2b,打印出2;输入b2,打印出 "cin is fail"
int itest = 0;
if(!(cin >> itest)){
cerr << "cin is fail" << endl;
return EXIT_FAILURE;
}
cout << itest <<endl;

//不管输入什么,均能输出,因为都符合字符串
string str;
if(!(cin >> str)){
cerr << "cin is fail" << endl;
return EXIT_FAILURE;
}
cout << str << endl;

//跟itest一样
int itest1 = 0;
cin >> itest1;
if(!cin){
cerr << "cin is fail" << endl;
return EXIT_FAILURE;
}
cout << itest1 <<endl;

return EXIT_SUCCESS;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息