注册 登录
编程论坛 C++教室

帮忙看一下偶数存入二进制文件的程序问题

菁菁wang 发布于 2011-10-20 10:14, 949 次点击
#include "stdafx.h"
#include<fstream.h>
void main(void)
{
int i,x;
ofstream out("date3.dat",ios::out|ios::binary);
if(!out){cout<<"不能打开文件d3.dat\n";return;}
for(i=5;i<200;i+=2)
out.write((char*)&i,sizeof(int));
out.close();
ifstream f("data3.dat",ios::in|ios::binary);
if(!f){cout<<"不能打开文件d.dat\n";return;}
f.seekg(30*sizeof(int));
for(i=0;i<10&&!f.eof();i++)
{
    f.read((char*)&x,sizeof(int));
    cout<<x<<'\t';
}
f.close();
}

请高手看看本程序有什么问题如何修改?
目的是创建二进制文件“data3.dat”,并将5-200之间的奇数存入二进制文件,然后将文件中的第30-39位置之间的数依次读出并输出,正确显示结果应该是:
65 67 69 71 73 75 77 81 83
Press any key to continue
但是我运行之后的结果显示的却是:
-85899346          Press any key to continue
5 回复
#2
玩出来的代码2011-10-20 17:19
被LZ害了,我先在磁盘上创建了一个data3.dat,然后运行程序,果然出错、、然后改用C函数正确、、再用C++还错、突然发现磁盘上有3个文件。
#3
菁菁wang2011-10-21 08:20
回复 2楼 玩出来的代码
嘿嘿,新手嘛,偶尔害人也是无意的。知道什么问题了吗?知道了分享一下呗
#4
lucky5635912011-10-21 08:24
你的x是哪里来的?
#5
菁菁wang2011-10-21 14:57
回复 4楼 lucky563591
资料上看的啊,给点解决办法吧,谢谢
#6
玩出来的代码2011-10-21 16:36
问题已经很明显了,我磁盘上有3个文件、、
1