C++学习笔记7——标准IO库

来源:互联网 发布:js读取本地文件到流 编辑:程序博客网 时间:2024/06/08 15:04

IO对象不可以复制或者赋值,所以它不能做返回类型或者是形参。若要传递或返回IO对象,则必须传递或返回指向对象的指针或引用:ofstream &print(ofstream &)

检测流是否可用的方法最简单的就是检查其真值:while(cin>>word)通过检查条件表达式返回的流间接地检查了流的状态;if(cin)直接检查流的状态。

输出缓冲区的刷新方式:1、程序正常运行结束,清空所有缓冲区。2、缓冲区已满的情况下,在下一个值到来之前刷新。3、用endl显示地刷新,endl输出一个换行符并刷新缓冲区4、用unitbuf操纵符设置流的状态,该操作符每次执行完写操作之后都刷新流。5将输入流与输出流关联起来,即cin与cout,在读入流时刷新其关联的输出缓冲区。

打开文件进行操作时,要检查文件是否打开,ifstream infile;infile.open("in");if(!infile);打开一个文件之后,又要对另一个文件进行操作时,必须先关闭现在打开的文件,然后再打开另一个。如果要重用已存在的数据流,每次都要进行infile.close();infile.clear();。打开文件的模式分为:in-读,out-写,app-写之前调至末尾,ate-打开文件后跳至末尾,

trunc-打开文件是清空已存在的文件流,binary-以二进制模式进行读写。in和out同时进行,不会清空。

在读写文件时,必须定义自己的对象,并绑定到文件上。如:ifstream ifile("aa");  或者ifstream ifile; ifile.open("aa");

字符串流的特定操作:

stringstream strm; 创建自由的stringstream对象

stringstream strm(s); 创建stringstream对象,并存储s的副本。s是string对象

strm.str();  返回strm中存储的内容

strm.str(s); 将string类型的s复制给strm,返回void

stringstream对象可以用于在多种数据类型之中自动格式化的实现。

原创粉丝点击