C++ Primer 学习笔记——IO类
来源:互联网 发布:无锡大数据it 编辑:程序博客网 时间:2024/06/15 14:57
1.ifstream 和istringstream都继承自istream,因此对三个类的对象的操作相似
2.IO对象不能拷贝不能赋值
IO操作的函数形参和返回值类型不能为流类型
进行IO操作的函数常以引用方式传递和返回流,且不能为const
条件状态
cin>>word 如果输入成功,流会保持有效状态,
cin也会进入错误状态,当word类型不符合时
IO库定义了一个与机器无关的iostate类型,提供了表达流状态的完整功能
rdstate(),返回一个iostate值,对应流的当前状态
clear() 清除(复位)所有错误标志位
clear(iostate ); 表示流的新状态
//8.1.2#include<iostream>using namespace std;istream& f(istream& is){ int ival; while (is >> ival , !is.eof())//文件结束时候,eofbit置位,eof()返回true {//要用‘,’,如果用逻辑符号&&,输入a时候,cin错误就马上退出循环。逗号运算符,先从标准输入流读取,在判断文件是否结束,最后结果为!is.eof()的值 if (is.bad())//bad()若badbit置位(流已经奔溃),返回true { cout << "bad"; } if (is.fail())//fail(),若badbit或failbit(IO操作失败,发生可修复错误),返回true { cerr << "bad"; is.clear(); is.setstate(istream::eofbit); continue; } cout << ival; } is.clear();//复位 return is;}int main(){ cout << "begin"; f(cin); return 0;}
管理输出缓冲区
每个输出流都管理一个缓冲区,用来保存程序读写的程序,
缓冲刷新:数据真正写到输出设备或文件中
cout<<"1"<<endl 换行并刷新缓冲区cout<<"1"<<flush 先输出,在刷新缓冲区cout<<"1"<<ends 输出1和一个空字符,在刷新cout<<unitbuf 所有输出操作后都会立即刷新cout<<nounitbuf
关联输入和输出
标准库将cin和cout关联在一起,cin>>vial会导致cout的缓冲区被刷新,使得在读操作时候同时会打印
关于ios::tie
cin.tie(&cout)//cin与cout关联
http://blog.csdn.net/asx20042005/article/details/7365511
0 0
- C++ Primer 学习笔记——IO类
- c++primer:IO类的学习
- c++primer学习笔记 ( 第八章 标准IO库)
- C++Primer学习笔记(8)标准IO库
- C++PRIMER学习笔记
- c++primer学习笔记
- c++primer学习笔记
- C++primer学习笔记
- c++primer 学习笔记
- C++Primer 学习笔记
- c++primer学习笔记
- C++Primer学习笔记
- C++PRIMER 学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- c++primer学习笔记
- C++Primer学习笔记——第一部分 基本语言
- malloc free new delete 赋值构造函数相关使用及区别
- Angularjs + Requirejs 完整的手脚架
- MD5Util开发工具类
- 一些相关概念
- linux下的用户管理小结
- C++ Primer 学习笔记——IO类
- 解决:Android Studio 不能预览
- LVS基本命令详解
- Linux多线程实践(五 )Posix信号量和互斥锁解决生产者消费者问题
- 有序二维数组查找元素
- HDU 5507 Graph(dp + 矩阵快速幂)
- MacBook下疑难杂症诊断攻略
- 结构和类
- 判断颁奖人员(C语言实现)