#include <iostream>
using namespace std;
void check_cin_state(istring &is)
{
cout << "检查cin的状态:" << endl;
if (cin is.bad())
cout << "cin bad()" << endl;
else
cout << "cin not bad()" << endl;
if (cin is.eof()) // end of fail文件是否结束,
cout << "cin eof()" << endl;
else
cout << "cin not eof()" << endl;
if (cin is.fail())
cout << "cin fail()" << endl;
else
cout << "cin not fail()" << endl;
if (cin is.good())
cout << "cin good()" << endl;
else
cout << "cin not good()" << endl;
}
int main()
{
cout << "检查cin的状态:" << endl;
// cin.setstate(istream::badbit);
// cin.setstate(istream::failbit); // 强制改变为failbit
cin.setstate(istream::badbit | istream::failbit); // 强制改变两种状态,
cin.clear(istream::badbit); // 清除一个,
cin.clear(); // 全部清除,
istream::iostate old_state = cin.rdstate(); // 保存流的状态,
cin.clear(old_state);// 还原流的状态,
check_cin_state(cin);
cout << "请输入一个整数:" << endl;
int n;
cin >> n;
cout << "再检查一次cin的状态:" << endl;
check_cin_state(cin);
return 0;
}
条件状态
最新推荐文章于 2024-02-05 16:13:42 发布