c++文件流的读写,read/write函数的例子跑不通

这是一段书上的例子#include<fstream.h>#include<iostream.h>main(){fstreamf("0327.txt",ios::in|io... 这是一段书上的例子

#include <fstream.h>
#include <iostream.h>

main()
{
fstream f("0327.txt",ios::in|ios::out|ios::binary);
int i;
for(i=0;i<20;i++)
f.write((char *)&i,sizeof(int));
streampos pos=f.tellp();
for(i=20;i<40;i++) f.write((char *)&i,sizeof(int));
f.seekg(pos);
f.read((char *)&i,sizeof(int));
cout<<"The data stored is "<<i<<endl;
}

书上给出的结果是打出 The data stored is 20,但是我实际跑出的结果是The data stored is 40.

不知道是哪里出的问题,请问这个是例子出错么?
展开
 我来答
wdwy003
2014-03-28 · TA获得超过2113个赞
知道小有建树答主
回答量:1073
采纳率:0%
帮助的人:1060万
展开全部
fstream f("0327.txt",ios::in|ios::out|ios::binary);
//这里的ios::in要求文件必须存在 所以打开会失败
//所以你可以在你的exe目录下新建一个0327.txt文件。。就好了
if(!f.is_open())
{
 return -1;
}
int i;
for(i=0;i<20;i++)
 f.write((char *)&i,sizeof(int));
long pos=f.tellp();
cout <<pos<<endl;
for(i=20;i<40;i++) f.write((char *)&i,sizeof(int));
f.seekg(pos);
f.read((char *)&i,sizeof(int));
cout <<"The data stored is "<<i<<endl;
f.close();
更多追问追答
追问
可是我没有收到文件打开错误的提示耶,只是打印的结果和书上的答案不一致,应该不是文件创建失败的原因吧
追答
是的。。。文件创建失败
i就读不出来了。。
i就是 最后的值 40
我不是让你新建一个0327.txt 了吗 ,你试了吗
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式