【发布时间】:2019-09-20 07:58:35
【问题描述】:
我无法将数据附加到 bin 文件中。它总是被截断为 0 并开始写入文件请建议如何在文件上附加数据我已经尝试了一切
我曾尝试使用 class 和 fstream 和 iostream 库读取和写入人员身份数据
请建议我应该使用 fstream 库进行文件处理还是使用 C stdio.h 库
class identity
{
int age;
char name[20];
public:
identity()
{}
void getdata() // input the data
{
cout<<"enter your name :";
cin>>name;
cout<<"\nenter your age :";
cin>>age;
}
void putdata() //display the data
{
cout<<"Name :"<<name<<endl;
cout<<"age :"<<age<<endl;
}
};
int main()
{
int i;
identity i1[2];
ofstream fobj;
//opening of Irecord file
fobj.open("Irecord.dat",ios::out|ios::app|ios::binary);
for(i=0;i<2;i++)
{
i1[i].getdata();
fobj.write((char*)&i1[i],sizeof(i1[i]));
}
ifstream fin("Irecord",ios::in|ios::binary);
fin.seekg(0,ios::beg);
for(i=0;i<20;i++)
{
fin.read((char*)&i1[i],sizeof(i1[i]));
i1[i].putdata();
}
cout<<endl;
fobj.close();
return 0;
}
数据不会附加到文件中,它会被截断为 0。
【问题讨论】:
-
你需要提供一个最小的、可复制的例子,像这样:godbolt.org/z/yLNVbt
-
在读取数据之前关闭输出流。