C++ or MFC读取二进制文件的问题 30
先说在c++(控制台程序)中吧..在程序中我设置了输出和读入二进制文件的功能,在程序中(没有关闭程序的前提下),我都可以输出,和读入二进制文件的.(刚输出完,就可以读取....
先说在c++(控制台程序)中吧..在程序中我设置了输出和读入二进制文件的功能,在程序中(没有关闭程序的前提下),我都可以输出,和读入二进制文件的.(刚输出完,就可以读取.)但是为什么我把程序关闭了,重新再开的时候,就不能读取了??(文件还在,没有重新输入就直接读取!)读取出来的数据都是溢出的?为什么呢?..
而MFC上的问题也是这样,输出了二进制文件以后,就总是读取不了...没有任何的数据.
ps.本来我是打算是在MFC读取后,把数据的某一项(例如名称)显示在列表框,然后其他数据出现在文本框的,但是读取以后什么数据都没有,但是列表框的确多了一项空白的一行...一按就马上出错了.(如图)..后来加了一个UpdateData(FALSE),发现数据都是溢出的~!为什么呢?
lib a;
ofstream ofile("data.dat",ios::binary);
ifstream ifile("data.dat",ios::binary);
int b;
cin>>b;
if(b==0)
{
cin>>a.a1>>a.a2>>a.a3;
ofile.write((char*)&a,sizeof(a));
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
ofile.close();
ifile.read((char*)&a,sizeof(a));
ofile.close();
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
}
else
{
ifile.read((char*)&a,sizeof(a));
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
ofile.close();
}
}
lib a;
ofstream ofile("data.dat",ios::binary);
ifstream ifile("data.dat",ios::binary);
int b;
cin>>b;
if(b==0)
{
cin>>a.a1>>a.a2>>a.a3;
ofile.write((char*)&a,sizeof(a));
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
ofile.close();
ifile.read((char*)&a,sizeof(a));
ofile.close();
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
}
else
{
ifile.read((char*)&a,sizeof(a));
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
ofile.close();
}
例如这样 .if else是选择输入还是读取..
MFC的读取的代码大致上差不多吧.都是这样的read 和write (用CFile的) 展开
而MFC上的问题也是这样,输出了二进制文件以后,就总是读取不了...没有任何的数据.
ps.本来我是打算是在MFC读取后,把数据的某一项(例如名称)显示在列表框,然后其他数据出现在文本框的,但是读取以后什么数据都没有,但是列表框的确多了一项空白的一行...一按就马上出错了.(如图)..后来加了一个UpdateData(FALSE),发现数据都是溢出的~!为什么呢?
lib a;
ofstream ofile("data.dat",ios::binary);
ifstream ifile("data.dat",ios::binary);
int b;
cin>>b;
if(b==0)
{
cin>>a.a1>>a.a2>>a.a3;
ofile.write((char*)&a,sizeof(a));
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
ofile.close();
ifile.read((char*)&a,sizeof(a));
ofile.close();
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
}
else
{
ifile.read((char*)&a,sizeof(a));
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
ofile.close();
}
}
lib a;
ofstream ofile("data.dat",ios::binary);
ifstream ifile("data.dat",ios::binary);
int b;
cin>>b;
if(b==0)
{
cin>>a.a1>>a.a2>>a.a3;
ofile.write((char*)&a,sizeof(a));
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
ofile.close();
ifile.read((char*)&a,sizeof(a));
ofile.close();
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
}
else
{
ifile.read((char*)&a,sizeof(a));
cout<<a.a1<<" "<<a.a2<<" "<<a.a3<<endl;
ofile.close();
}
例如这样 .if else是选择输入还是读取..
MFC的读取的代码大致上差不多吧.都是这样的read 和write (用CFile的) 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询