cin.clear()与cin.sync()与cin.ignore()
2011-11-04 21:16
369 查看
阅读程序一与程序二:
一:
#include<iostream>
using namespace std;
int main()
{
int a;
cout<<"输入一个字母:"<<endl;
cin>>a; //int型变量中放了char型数据,failbit置1
cout<<"cin.fail()="<<cin.fail()<<endl;//输出1
//cin.clear();
//cin.sync();
cout<<"输入一个数字:"<<endl; //由于failbit值为1,输入流不能正常工作
cin>>a; //故此处的输入无效
cout<<a<<endl; //输出不确定值
cin.clear(); //此处用cin.clear()流标志复位
//cin.sync();
cout<<"cin.fail()="<<cin.fail()<<endl; //此处failbit已为0
cout<<"输入一个数字:"<<endl;
//但刚才输入的字符并没有从流中清除,所以cin>>a又把那个字符放入a中,流输入流又不能正常工作
cin>>a;
cout<<a<<endl; //输出不确定值
cout<<"cin.fail()="<<cin.fail()<<endl; //在此处failbit又为1
cin.clear(); //再次修复输入流
cin.ignore(); //取走刚才流中的字符
cout<<"输入一个数字:"<<endl; //再次接收用记输入,这次输入数字,正常输出了
cin>>a;
cout<<"a="<<a<<endl;
//现在再看一下输入流的failbit
cout<<"cin.fail()="<<cin.fail()<<endl;//输出0,表明输入流已恢复正常
return 0;
}
二:
int main()
{
int a;
while(cin>>a){
cout<<a;
}
cin.clear();//修复输入流(因为上面的回车符也进入了缓冲区)
cin.sync();//清除缓冲区(非法字符‘回车符’)
while(cin>>a){
cout<<"a="<<a<<endl;
}
return 0;
}
一:
#include<iostream>
using namespace std;
int main()
{
int a;
cout<<"输入一个字母:"<<endl;
cin>>a; //int型变量中放了char型数据,failbit置1
cout<<"cin.fail()="<<cin.fail()<<endl;//输出1
//cin.clear();
//cin.sync();
cout<<"输入一个数字:"<<endl; //由于failbit值为1,输入流不能正常工作
cin>>a; //故此处的输入无效
cout<<a<<endl; //输出不确定值
cin.clear(); //此处用cin.clear()流标志复位
//cin.sync();
cout<<"cin.fail()="<<cin.fail()<<endl; //此处failbit已为0
cout<<"输入一个数字:"<<endl;
//但刚才输入的字符并没有从流中清除,所以cin>>a又把那个字符放入a中,流输入流又不能正常工作
cin>>a;
cout<<a<<endl; //输出不确定值
cout<<"cin.fail()="<<cin.fail()<<endl; //在此处failbit又为1
cin.clear(); //再次修复输入流
cin.ignore(); //取走刚才流中的字符
cout<<"输入一个数字:"<<endl; //再次接收用记输入,这次输入数字,正常输出了
cin>>a;
cout<<"a="<<a<<endl;
//现在再看一下输入流的failbit
cout<<"cin.fail()="<<cin.fail()<<endl;//输出0,表明输入流已恢复正常
return 0;
}
二:
int main()
{
int a;
while(cin>>a){
cout<<a;
}
cin.clear();//修复输入流(因为上面的回车符也进入了缓冲区)
cin.sync();//清除缓冲区(非法字符‘回车符’)
while(cin>>a){
cout<<"a="<<a<<endl;
}
return 0;
}
相关文章推荐
- 缓冲区及流状态、cin.sync()、cin.clear()、cin.ignore()
- cin流输入控制(clear(),sync(),flush(),ignore())
- cin.clear,cin.sync,cin.ignore
- cin用法介绍(特别是学习了cin.clear和cin.sync)
- cin.clear()与cin.sync()是有顺序的
- 输入输出流的细节(cin.clear,cin.sync(),cout的一些细节处理)
- cin.get,cin.clear以及cin.sync
- cin.get,cin.clear以及cin.sync
- cin.fail(), cin.bad(), cin.good(), cin.clear(), cin.ignore()
- C++中cin对象的clear方法和sync方法的暧昧关系
- 有关cin.fail,cin.clear,cin.sync的应用
- 有关cin.fail,cin.clear,cin.sync的应用
- cin详解(cin.get()、cin.getline()、cin.clear()、cin.sync())
- cin.getline,cin.get,cin.ignore,cin.clear用法(转)
- cin.clear()和cin.sync
- in.clear()、cin.sync()和cin.ignor()的用法
- cin详解(get()、getline()、clear()、sync())
- cin.clear()、cin.sync()和cin.ignor()的用法
- [转]浅析cin.getline,cin.get,cin.ignore,cin.clear用法
- cin详解(cin.get()、cin.getline()、cin.clear()、cin.sync())