【发布时间】:2018-10-28 22:01:39
【问题描述】:
当我尝试将多个对象写入文件时正确完成。 但是当我尝试从文件中读取多个对象时,它只显示最后一个对象的数据。
将多个对象写入文件:-
for(int i=0;i<n;i++)
{
s[i].getdata();
ofstream file("Simple.txt");
if(file.is_open())
{
cout<<"File created"<<endl;
file.write((char*)&s[i],sizeof(s[i]));
file.close();
}
else
{
cout<<"File not Open../"<<endl;
}
}
其中,s 是对象 在 for 循环中用作生成多个对象。
【问题讨论】:
-
好吧,每次执行循环时都打开和关闭文件。您可能希望在循环之前打开文件并且不关闭它,因为
std::ofstream的析构函数会为您执行此操作(除非您想明确地重新打开具有相同对象的文件) -
您好,欢迎来到 stackoverflow,您可能想访问 stackoverflow.com/help/how-to-ask 以获取有关如何完善您的问题的一些提示,这将有助于我们为您提供帮助:)
-
请注意,在大多数情况下,天真地将对象的字节发送到 C++ 中的文件是行不通的,原因与天真地通过网络发送对象的字节行不通的原因相同:stackoverflow.com/questions/8485870/…