知方号

知方号

C++文件读写详解(ofstream,ifstream,fstream)

C++文件读写详解(ofstream,ifstream,fstream)

在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:

这里主要是讨论fstream的内容:

#include ofstream //文件写操作 内存写入存储设备 ifstream //文件读操作,存储设备读区到内存中fstream //读写操作,对打开的文件可进行读写操作

1.打开文件

在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联,通过ofstream,ifstream,fstream对象进行对文件的读写操作

函数:open()

public member functionvoid open ( const char * filename, ios_base::openmode mode = ios_base::in | ios_base::out );void open(const wchar_t *_Filename,        ios_base::openmode mode= ios_base::in | ios_base::out,        int prot = ios_base::_Openprot);参数: filename   操作文件名

           mode        打开文件的方式

           prot         打开文件的属性                            //基本很少用到,在查看资料时,发现有两种方式

打开文件的方式在ios类(所以流式I/O的基类)中定义,有如下几种方式:

ios::in为输入(读)而打开文件ios::out为输出(写)而打开文件ios::ate初始位置:文件尾ios::app所有输出附加在文件末尾ios::trunc如果文件已存在则先删除该文件ios::binary二进制方式 这些方式是能够进行组合使用的,以“或”运算(“|”)的方式:例如

ofstream out;out.open("Hello.txt", ios::in|ios::out|ios::binary) //根据自己需要进行适当的选取打开文件的属性同样在ios类中也有定义: 0普通文件,打开操作1只读文件2隐含文件4系统文件 对于文件的属性也可以使用“或”运算和“+”进行组合使用,这里就不做说明了。

很多程序中,可能会碰到ofstream out("Hello.txt"), ifstream in("..."),fstream foi("...")这样的的使用,并没有显式的去调用open()函数就进行文件的操作,直接调用了其默认的打开方式,因为在stream类的构造函数中调用了open()函数,并拥有同样的构造函数,所以在这里可以直接使用流对象进行文件的操作,默认方式如下:

ofstream out("...", ios::out);ifstream in("...", ios::in);fstream foi("...", ios::in|ios::out);当使用默认方式进行对文件的操作时,你可以使用成员函数is_open()对文件是否打开进行验证

2.关闭文件

当文件读写操作完成之后,我们必须将文件关闭以使文件重新变为可访问的。成员函数close(),它负责将缓存中的数据排放出来并关闭文件。这个函数一旦被调用,原先的流对象就可以被用来打开其它的文件了,这个文件也就可以重新被其它的进程所访问了。为防止流对象被销毁时还联系着打开的文件,析构函数将会自动调用关闭函数close。

3.文

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。