请教一下关于【文件操作】的奇怪的现象?
今天在做C++文件操作时碰到一个怪事 折腾了半天,快疯了,
搜索了一下,只看到大量转载的 的文章,千篇一律,无奈只好来发帖请教 。
网上有标准答案(和老师给的一样),不要拿来骗分数,我不想当打字员!
我就是想用其他方法实现

搜索了一下,只看到大量转载的 的文章,千篇一律,无奈只好来发帖请教 。
网上有标准答案(和老师给的一样),不要拿来骗分数,我不想当打字员!
我就是想用其他方法实现
/*
要求输入数据后保存,接着读出文件中的所有数据,文件是否存在不确定。
*/
/*方法1:打开失败*/
void x()
{
char s[10];
ofstream ofs("d:\\student.txt",ios::out|ios::trunc);
ifstream ifs("d:\\student.txt", ios::in|ios::ate);
if(ofs.fail()||ifs.fail())
{
cout<<"打开失败"<<endl;
return;
}
ofs<<"Test";
ifs>>s;
cout>>s;
}
/*方法2:每次打开都会清空student.txt内容(如果文件不存在就自动创建),导致数据永远只有刚刚输入的*/
void x()
{
char s[10];
ofstream ofs("d:\\student.txt",ios::out|ios::in|ios::trunc);//为什么此处要 有ios::in
ifstream ifs("d:\\student.txt",ios::out|ios::in|ios::ate); //为什么此处要 有ios::out
if(ofs.fail()||ifs.fail())
{
cout<<"打开失败"<<endl;
return;
}
ofs<<"Test";
ifs>>s;
cout>>s;
}
/*方法3:student.txt必须事先存在,否则无法打开*/
void x()
{
char s[10];
ofstream ofs("d:\\student.txt", ios::in|ios::out|ios::ate);//同上
ifstream ifs("d:\\student.txt",ios::out| ios::in|ios::ate);//同上
if(ofs.fail()||ifs.fail())
{
cout<<"打开失败"<<endl;
return;
}
ofs<<"Test";
ifs>>s;
cout>>s;
}
...全文


新手乐园
