+ -
当前位置:首页 → 问答吧 → c++中的文件操作

c++中的文件操作

时间:2011-12-24

来源:互联网

#include<iostream>
#include<fstream>
using namespace std;
class student
{ public:
int id;
char name[20];
int sex;
};
int main()
{
student a={2010012713,"lee",1};
fstream file("d:\\student.dat",ios::binary|ios::in|ios::out);
file<<a.id<<" "<<a.name<<" "<<a.sex;
if(!file)cout<<"open error"<<endl;
file.close();
system("PAUSE");
return 0;
}这个时候运行时,无法新建文件,如果将fstream换成ofstream时编译成功能创立文件。。为什么

作者: li_ji_wen   发布时间: 2011-12-24

对于输出文件流来说,ios_base::out等价于ios_base::out|ios_base::trunc,所以,trunc标志可以忽略。当文件不存在是会创建一个新文件。
对于双向文件流,trunc标志必须被显示的指定,否则无法创建新文件,所以
fstream file("d:\\student.dat",ios::binary|ios::in|ios::out);
应改为
fstream file("d:\\student.dat",ios::binary|ios::in|ios::out|ios::trunc);

作者: yulinlang   发布时间: 2011-12-24