C++ Primer 8.1 IO类 知识点

C++ Primer 8.1 IO类 知识点_第1张图片

C++ Primer 8.1 IO类

  • io对象无拷贝赋值
  • 条件状态
  • 管理缓存
  • 练习题

io对象无拷贝赋值

ofstream out1,out2;
//以下操作全为错误
out1=out2;
ofstream print(out2);
out2=print(out1);

条件状态

流对象的rdstate成员返回一个iostate值,表示其状态(P279)

aotu old_state =cin.rdstate();//返回cin当前状态
cin.cleal();//清空cin状态
process_input(cin);//使用cin
cin.setstate(old_state);//!!!把cin的状态置为之前的状态

管理缓存

此时可以输出(缓冲区刷新),程序正常结束

os<<"hello world";

此时不可以,无限循环

os<<"hello world";
while(1);

此时用关联方式,也可以解决

char c;
cin>>c;
cout<>c;//使用它刷新cout
while(1);

用unitbuf可以直接刷新,使用方法如下

cout<

tie函数关联

  1. 不带参数的tie,返回指向输出流的指针
  2. 带参数的tie,接受一个指向ostream的指针,将关联到ostream
ofstream ofs;
ofs.open("test.txt");
cin.tie(&ofs);//传入的是ofs的地址,将cin与ofs关联
//cin写入时,ofs自动刷新

练习题

先略过

你可能感兴趣的:(C++,Primer,c++,开发语言,C++,Primer)