发布日期:2015-12-29 14:58 来源: 标签: 编程语言 C++教程 C++文件流 C++文件读写
本章我们主要学习C++中如何创建打开及关闭文件流?C++中如何实现文件的顺序及随机读写?下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
1、创建文件流
在C++中进行文件操作,要包含<fstream.h>。该头文件包括了ifstream(从文件输入)、ofstream(向文件输出)、fstream(从文件输入输出)流类的定义。它们分别派生自istream、ostream、iostream。建立文件流就是定义文件流类的对象。如
ifstream fin;
ofstream fout;
fstream fio;
建立了流以后,就可以把某一个流与文件建立联系,进行文件的读写操作了。
2、文件的打开与关闭
可以在定义文件流对象的同时完成打开文件的工作,也可在定义文件流对象以后通过open()函数完成。
open()函数是上述三个流类的成员函数,定义在fstream.h头文件中。
函数原型为:
void open(const unsigned char *,int mode,int dcces=filebuf::openprot);
说明:
①第一个参数用来传递文件名;
②第二个参数的值决定文件打开的方式,必须从下列值中选取:
    ios::app               //使输出追加到文件尾部,只用于输出
    ios::ate                //查找文件尾
    ios::in                 //打开一个文件进行读操作,只用于输入
    ios::nocreate            //文件不存在,导致open()失败
    ios::noreplace           //若文件存在,则open()失败
    ios::out                //打开一个文件进行写操作,只用于输出
    ios::trunc               //删除同名文件
    ios::binary              //以二进制方式打开文件,缺省为文本方式
以上各值可以组合使用,之间用“|”分开。
③第三个参数的值决定文件的访问方式及文件的类别。 
一般情况下,ifstream和ofstream流类的析构函数就可以自动关闭已打开的文件,也可用函数close()关闭文件,它是流类中的成员函数,没有参数,没有发返回值。
3、文件的顺序读写
①get()函数
函数原型:istream &get(unsigned char &ch);
作用:它从流中每次读出一个字节或一个字符放入引用ch&中。
②put()函数
函数原型:istream &put( char ch); 
作用:它将一个字节或一个字符写入流中。
③read()函数
函数原型:istream &read(unsigned char *buf,int num); 
作用:从相应的流读出num个字节或字符的数据,把他们放入指针所指向的缓冲区中。buf是一个指向读入数据存放空间的指针,num说明要读入数据的字节或字符数。
④write()函数
函数原型:ostream &write(const unsigned char *buf,int num);
作用:从buf所指向的缓冲区把num个字节的数据写到相应的流中。参数的含义、调用及注意事项与read()相同。
4、文件的随机读写
完成定位操作的函数如下:
①函数seekg()
函数原型:isream &seekg(streamoff offset,seek_dir origin);
作用:用于输入文件,将文件的读指针从origin说明的位置移动offset个字节;
②函数seekp()
函数原型:osream &seekp(streamoff offset,seek_dir origin);
作用:用于输出文件,将文件的写指针从origin说明的位置移动offset个字节。
说明:origin的取值由三种情况:
ios::beg  从文件头开始,把文件指针移动由offset指定的距离。
ios::cur  从文件当前位置开始,把文件指针移动offset指定的距离。
ios::end  从文件尾开始,把文件指针移动由offset指定的距离。
③函数 tellg()
函数原型:streampos tellg();
作用:用于输入文件,确定文件当前指针的位置
④函数 tellp()
函数原型:streampos tellp();
作用:用于输出文件,确定文件当前指针的位置。

相关评论

专题信息
    C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! 本教程从基础讲解了C++语言,希望对大家有所帮助,望多多支持中国站长网络学院。