这里主要是讨论fstream的内容:1 #include
2 ofstream //文件写操作 内存写入存储设备
3 ifstream //文件读操作,存储设备读区到内存中
4 fstream //读写操作,对打开的文件可进行读写操作
1、打开文件
在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联,通过ofstream,ifstream,fstream对象进行对文件的读写操作
函数:open()1 public member function
2
3 void open ( const char * filename,
4 ios_base::openmode mode = ios_base::in | ios_base::out );
5
6 void open(const wchar_t *_Filename,
7 ios_base::openmode mode= ios_base::in | ios_base::out,
8 int prot = ios_base::_Openprot);
9 /*
10 参数:filename 操作文件名
11 mode 打开文件的方式
12 prot 打开文件的属性 //基本很少用到,在查看资料时,发现有两种方式
13
14 */
打开文件的方式在IOS类(流式I/O的基类)中定义,有如下几种方式:
ios::in
为输入(读)而打开文件,文件不存在则创建(ifstream)默认的打开方式
ios::out
为输出(写)而打开文件,文件不存在则创建,若文件已存在则清空原内容
(ofstream默认的打开方式)
ios::ate
文件打开时,指针在文件最后。可改变指针的位置,常和in、out联合使用
ios::app
供写使用,文件不存在则创建,若文件已存在则在原文件内容后写入新的内容,
指针位置总在最后
ios::trunc
在读写前,先将文件长度截断为0(默认)
ios::nocreate
文件不存在时产生错误,常和in或app联合使用
ios::noreplace
文件存在时产生错误,常和out联合使用
ios::binary
二进制格式文件
这些方式是能够以“或”运算(“|”)的方式进行组合使用。
文件保护方式选择项
filebuf::openprot
默认的兼容共享方式
filebuf::sh_none
独占,不共享
filebuf::sh_read
读共享
filebuf::sh_write
写共享
很多程序中,可能会碰到ofstream out("Hello.txt"), ifstream in("..."),fstream foi("...")这样的的使用,并没有显式的去调用open()函数就进行文件的操作,直接调用了其默认的打开方式,因为在stream类的构造函数中调用了open()函数,并拥有同样的构造函数,所以在这里可以直接使用流对象进行文件的操作,默认方式如下:1 ofstream out(