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.
不知道是哪里出的问题,请问这个是例子出错么? 展开
#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.
不知道是哪里出的问题,请问这个是例子出错么? 展开
1个回答
展开全部
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 了吗 ,你试了吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询