下面结出几种常见的打开模式:
ios::in --打开一个可读取文件
ios::out --打开一个可写入文件
ios::binary --以二进制的形式打开一个文件
ios::app --写入的所有数据将被加到文件的末尾
ios:trunk --删除文件原来已存在的内容
ios::nocreate --如果要打开的文件并不存在,那么以此参数调用open 函数将无法进行。
ios::noreplece --如果要打开的文件已存在,试图用open 函数打开时将返回一个错误。
下面是一个实例:
#include<fstream>
#include<iostream>using namespace std;
int main()
{
ofstream out("test.txt",ios::app);
if (!out)
{
cout << "文件打开失败!";
return 0;
}for(int i=0;i<10;i++)
{
out << i;
}
out << endl;
out.close();
return 0;
}
结果如图所示:
如果使用多种模式操作文件,那么可以用“|”即OR
#include<fstream>
#include<iostream>using namespace std;
int main()
{
fstream fp("test.txt",ios::in | ios::out);
if (!fp)
{
cout << "文件打开失败!";
return 0;
}
fp << "Iloveyou";
static char stc[100];
fp.seekg(ios::beg);//使得文件指针指向文件头,ios::end则是文件尾部
fp >> stc;
cout << stc << endl;
fp.close();
return 0;
}