簡體   English   中英

如何在 C++ 中從文件讀取/寫入多個對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM