猿问

麻烦看一下这个问题,关于c++文件流的读写,read/write函数的例子跑不通

这是一段书上的例子

#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.

不知道是哪里出的问题,请问这个是例子出错么?

回首忆惘然
浏览 269回答 2
2回答

明月笑刀无情

读文件时 fstream.open() 函数调用时需要用到 ios::out 标志位。你代码中outFile.open("Manager.txt",ios::in|ios::binary);应该改为:outFile.open("Manager.txt",ios::in|ios::binary|ios::out);
随时随地看视频慕课网APP
我要回答