请教一下关于【文件操作】的奇怪的现象?

csdaa2010 csdaa2010 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
今天在做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;
}

...全文
评论 7
收藏 已收藏
分享
返回顶部
csdaa2010
新手乐园 33,315 成员 41,769 内容