学习要点:
1 IO流出错时 可以以其是否为0 来判断是否出错
2 出错状态的IO流不能继续工作
3 清除错误状态 .clear()
//判断IO流的状态
#include <iostream>
#include <string>
using namespace std;
//io对象要求能转换成boo类型 对正常状态的io对象转换成true 错误的返回false
int main()
{
cout << cin <<endl;
cout << cout << endl;
int n;
cin >> n;
cout << cin <<endl; //当n出入不能当作整数的东西时,cin变成0 正确时 输出非0地址
if(cin) cout << "平安无事" <<endl; //正确的例子123 1234.5 123sds 会将整数部分读取 剩下的存在缓冲区
if(!cin)
{
cout << "出错了" << endl; //出错的问题 sdsd wew213
cin.clear();
}
//io对象一旦处于错误状态 ,就会拒绝读写
// .clear() 清除错误状态 clear不清缓冲区!
string s;
cin >> s;
cout << "s= " << s <<endl;
//还有一些函数来判断 io对象的状态 .eof() ,fail() .bad() .good() 但是我们一般的做法
//还是将io流看作bool类型来判断
}