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