簡體   English   中英

C ++將結構對象讀/寫到文件

[英]C++ Read/Write struct object to a file

所以我寫了一個程序,可以輸入4個值,名字,姓氏,身高和簽名。 我將所有值存儲在Vector中,但現在我想學習如何從我的Vector中獲取值並將其存儲在文件中,然后從文件中讀取並存儲回Vector中。

vector<Data> dataVector;
struct Data info;
info.fname = "Testname";
info.lname = "Johnson";
info.signature = "test123";
info.height = 1.80;
dataVector.push_back(info);

我看起來仍然沒有找到將結構對象存儲到文件中的代碼,因此我向社區尋求幫助。

您應該為您的結構提供一種將其寫入流的方法:

struct Data
{
    // various things
    void write_to(ostream& output)
    {
        output << fname << "\n";
        output << lname << "\n";
        // and others
    }
    void read_from(istream& input)
    {
        input >> info.fname;
        input >> info.lname;
        // and others
    }
};

或提供兩個獨立的功能來完成這項工作,如下所示:

ostream& write(ostream& output, const Data& data)
{
    //like above
}
// and also read

或者,更好的是,重載<<>>運算符:

ostream& operator<<(const Data& data)
{
    //like above
}
// you also have to overload >>

或者,甚至更好的方法是使用提供此類功能的現有庫(例如Boost)。

最后一個選項有很多優點:您不必考慮如何在文件中分隔結構的字段,如何在同一文件中保存更多實例,在重構或修改結構時不必做更多的工作。

不要重新發明輪子:使用Boost序列化庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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