文件输入输出问题
ofstream outfile("data.dat",ios::out);
ifstream infile("data.dat",ios::in);
我这样定义的文件,在一个main函数里多次调用,但是写数据的时候老是只写第一次的,程序关了以后想要读数据,每次数据文件都变成空的了,怀疑是这两个函数设置的参数不对,高手帮我看下啊。而且感觉写的时候老爱出错。
//读文件
stu *openfile(stu *head_open)
{
cout<<"打开文件将丢失目前的临时文件?y"<<endl;
char tmp_open;
cin>>tmp_open;
if(tmp_open=='y'||tmp_open=='Y')
{
stu *pl_open,*pend_open;
stu *newhead_open=new stu;
pl_open=pend_open=newhead_open;
clearfile(head_open);
head_open=NULL;
if(!infile)
cout<<"打开文件错误!"<<endl;
else
{
while(!infile.eof())
{
pl_open=new stu;
infile>>pl_open->name>>pl_open->num>>pl_open->score;
pend_open->next=pl_open;
pend_open=pend_open->next;
}
infile.close();
pend_open->next=NULL;
delete_process(pend_open);
cout<<"读入成功!"<<endl;
}
return newhead_open->next;
}
else
return NULL;
}
//写文件
void savefile(stu * head_save)
{
cout<<"保存可能会覆盖以前数据,是否继续;y?"<<endl;
char tmp_save;
cin>>tmp_save;
if(tmp_save=='y'||tmp_save=='Y')
{
stu *pl_save;
pl_save=head_save;
if(!outfile)
{
cout<<"保存失败!"<<endl;
}
else
{
while(pl_save)
{
outfile<<pl_save->name<<" "<<pl_save->num<<" "<<pl_save->score<<" ";
pl_save=pl_save->next;
}
outfile.close();
cout<<"保存成功!"<<endl;
}
}
else ;
}