[英]how to Read/Write multiple objects from file in C++?
當我嘗試將多個對象寫入文件時,它已正確完成。 但是當我嘗試從文件中讀取多個對象時,它只顯示最后一個對象的數據。
將多個對象寫入文件:-
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 循環中用於生成多個對象的對象。
當你執行ofstream file("Simple.txt");
您正在以寫入模式打開文件。 並且您在每次迭代中都這樣做。 這意味着每次寫入文件時都是從頭開始寫入。 即,您每次都在覆蓋您的文件。 您應該嘗試以追加模式打開。 那可能會有所幫助。
同樣正如第一條評論所建議的那樣,在每次迭代中打開和關閉文件並不是一個好主意。
希望這可以幫助。
...
std::ofstream file;
file.open("Simple.txt" | std::ofstream::app);
...
您必須以追加模式打開文件。
您也可以在循環之前聲明文件句柄,然后只讀入值,然后在循環之后關閉文件句柄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.