chapter 8 IO库
1.IO库的类型和头文件
#includeistream//从流中读取数据ostream//从流中写入数据iostream//读写流#include //文件ifstreamofstreamfstream#include //字符串istringstreamostringstreamiostringstream
2.IO对象无拷贝和赋值
ofstream out1,out2;ou1 = out2 //错误!!!不能对流对象赋值ofstream print (ofstream); //错误,不能初始化ofsream参数out2 = print(out2); //不能拷贝流对象
确定一个流对象的状态最简单的方法就是将它作为一个条件来用;
while(cin>>word) //ok! 读操作成功
3.管理输出缓冲
#includeusing namespace std; int main() { cout << "hi!" << endl; cout << "hi!" << ends; //缓冲区插入一个字符,然后刷新 cout << "hi!" << flush; //刷新缓冲区,不输出任何字符 }
4.文件输入输出
//fsteam特有的操作fstream fstrm; //创建一个未绑定的文件流,fstream是头文件fstream中定义的一个类型;fstream fstrm(s); //创建一个fstream,并打开名为s的文件.s可以是string类型,或一个指向C风格的字符串指针fstream fstrm(s,,mode); //与前一个构造函数类似,但按指定mode打开文件fstrm.open(s); //打开名为s的文件,并将文件与stream绑定;fstrm.close(); //关闭与fstrm绑定的文件.返回viodfstrm.is_open(); //返回一个布尔值,指出与strm关联的文件是否成功打开且尚未关闭
5.文件模式
in 读方式out 写方式app 每次写操作前均定位到文件末尾ate 打开文件后立即定位到文件末尾trunc 截断文件binary 以二进制方式进行IO
注:保留被oftream打开的文件中已有数据的唯一方法是显示指定app 或 in模式
6.String流
// stringstream 特有的操作// includesstream strm ; // strm 是一个未绑定的stringstream.sstream strm(s); // strm 是一个sstream对象,保存string s的一个拷贝.此函数是explicit的strm.str(); // 返回strm保存的string的拷贝strm.str(s); // 将string s拷贝到strm中.返回void;