输入输出流

来源:互联网 发布:js 继承 编辑:程序博客网 时间:2024/05/12 02:40
#include <iostream> 
using namespace std; 
void main() 

int a; 
cout < < "输入一个字母: " < <endl; 
cin> > a; //int型变量中放了char型数据,failbit置1 
cout < < "cin.fail()= " < <cin.fail() < <endl; //输出1 
cout < < "输入一个数字: " < <endl; //由于failbit值为1,输入流不能正常工作 
cin> > a; //故此处的输入无效 
cout < <a < <endl; //输出不确定值 
cin.clear(); //此处用cin.clear()流标志复位 
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,表明输入流已恢复正常 




clear 清除输入流缓冲区get 1、输入一个字符,2、输入字符串,并不从输入流中去掉终结符号getline 输入字符串read 按二进制流的方式读入peek 从输入流中读取下一字符,但并不移去putback 将某字符 放回输入流开头ignore 丢到输入流中的字符eatwhite 去掉空白字符
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上