C++学习笔记(八)

来源:互联网 发布:行知外国语是区重点吗 编辑:程序博客网 时间:2024/06/02 02:50

第八章 IO库

1.iostream 定义了用于读写流的基本对象;fstream定义了读写命名文件的类型;sstream定义了读写内存string对象的类型。

2.头文件  iostream    类型: istream 从流读取数据 ostream 从流写入数据 iostream读写流

   头文件  fstream      类型: ifstream 从文件读取数据   ofstream 向文件写入数据 fstream 读写文件

   头文件  sstream     类型: istringstream 从string读取数据 ostringstream 向string写入数据  stringstream 读写string

   在类型前面加上w则支持使用宽字符。

3.简单来说,继承机制使我们可以声明一个特定的类继承自另一个类。通常可以将一个派生类(继承类)对象当做其基类(所继承的类)对象来使用。

   类型ifstream 和 istringstream都继承自istream,类似的ofstream和ostringstream都继承自ostream。

4. 进行IO操作的函数通常以引用方式传递和返回流。读写一个IO对象对改变其状态,因此传递和返回的引用不能是const的。

5. 由于IO操作一个不可避免的问题就是可能发生错误,因此代码通常应该在使用一个流之前检查它是否处于良好状态,用简单的while(cin>>word)来实现。

6. 缓冲刷新—数据真正写到输出设备或文件的情况:

(1)程序正常结束,比如main()函数的return语句;

(2)缓冲区慢时,需要刷新缓冲,而后新的数据才能被写入到缓冲区;

(3)使用操作符如endl来显式刷新缓冲区(完成一个换行之后刷新),使用flush(直接刷新),使用ends(输出一个空字符后刷新);

(4)使用操作符unitbuf来清空缓冲区,之后所有输出操作都会立即刷新缓冲区。

(5)一个输出流可能被关联到另一个流,在此情况下,当读写被关联的流时,关联到的流的缓冲区会被刷新。默认情况下,cin和cerr关联到cout。

什么叫刷新缓冲区;                   C++对缓冲区的理解

7. c++的tie函数。

8. 当我们想要读写一个文件时,可以定义一个文件流对象,并将对象与文件关联起来。

    有3种方法: 显然第三种方便。

(1)string  name("readme.txt");        ifstream in(name); 

(2)string  name("readme");             ifstream in(name+".txt");

(3)ifstream in("readme.txt");          

  或者定义一个空文件流对象,可以使用open来关联:

  ifstream in;    in.open("readme.txt") ;      // open里面的方法也是上面的三种。       ofstream对文件进行写操作用法类似。

  如(5)所述,检查流是否成功是一个习惯: if(in)  ........

  文件操作完成后使用关闭来解除绑定  in.close();  内无参数。    要想将文件流关联到另一个文件,必须在解除绑定后重新open。

9. 每个文件流都有一个关联的文件模式,比如上面ifstream in("readme.txt") 默认以读方式打开,即ifstream in("readme.txt",in);     ofstream则默认写方式 ofstrean out("....",out)

    open()也是如此 in.open("....",in);

10.string流。。。。。。。。。。看不懂。。。。。。

 

  

0 0
原创粉丝点击