这里主要是讨论fstream的内容:html
1 #include
2 ofstream //文件写操做 内存写入存储设备
3 ifstream //文件读操做,存储设备读区到内存中
4 fstream //读写操做,对打开的文件可进行读写操做
一、打开文件
在fstream类中,成员函数open()实现打开文件的操做,从而将数据流和文件进行关联,经过ofstream,ifstream,fstream对象进行对文件的读写操做 ios
函数: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的基类)中定义,有以下几种方式: app
ios::in
为输入(读)而打开文件,文件不存在则建立(ifstream)默认的打开方式 函数
ios::out url
为输出(写)而打开文件,文件不存在则建立,若文件已存在则清空原内容 spa
(ofstream默认的打开方式) .net
ios::ate
文件打开时,指针在文件最后。可改变指针的位置,常和in、out联合使用 设计
ios::app 3d
供写使用,文件不存在则建立,若文件已存在则在原文件内容后写入新的内容,
指针位置总在最后
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()函数就进行文件的操做,直接调用了其默认的打开方式