【发布时间】:2014-11-05 08:54:12
【问题描述】:
这个程序可以工作,但会在开头打印垃圾值 (ch=2) 并打印两次相同的输出。 我在我的项目中使用它。它包含更多数据,我使用单个对象而不是对象数组。它不起作用。数组的每个对象都存储一组数据。
#include<iostream>
#include<fstream>
using namespace std;
class rw //a class containing some data
{
public:
int n;
char a;
};
int main()
{
int i;
rw r[2]; //an array of objects
int ch;
fstream f1;
f1.open("file1.txt",ios::in|ios::out|ios::ate);
cout<<"1-read,2-write";
cin>>ch;
f1.seekp(0,ios::beg);
if(ch==1)//for saving
{
r[0].n=1;
r[0].a='a';
f1.write((char*) &r[0],sizeof(r[0]));
r[1].n=2;
r[1].a='b';
f1.write((char*)&r[1],sizeof(r[1]));
}
if(ch==2)//for reading
{
f1.seekg(0,ios::beg);
while(!f1.eof())
{
i=0;
cout<<r[i].n<<r[i].a;
cout<<"\n";
f1.read((char*)&r[i],sizeof(r[i]));
i++;
}
}
system("pause");
return 0;
}
【问题讨论】:
-
didn't work是什么意思,请您详细说明一下?程序会崩溃吗?它只是不写出文件吗?