2017-10-13 147 views
0

我想製作一個書籍數據庫來記錄我讀過的書籍。到目前爲止,我有一本書入門的結構。讀/寫幾個未知大小的結構文件C++

struct Entry 
{ 
    string title; 
    string author; 
    int pages; 
}; 

正如您所看到的,標題和作者變量的大小未確定。我想在一個文件中存儲幾個結構,然後在我想要顯示數據庫時讀取所有這些結構。

如何從文件讀取/寫入這些結構中的幾個?我必須有預定的尺寸嗎?請舉一個例子。

+1

你會需要發明一種文件格式,都描述和包含例如該數據:<長度的場><長度 - 現場>等 –

+1

到目前爲止你做了什麼?你可以添加代碼,你如何寫入文件? – OutOfBound

+0

XML或JSON可能是一個很好的格式來保存這些信息 – rak007

回答

1

,你可以很容易地將其存儲在一個CSV格式的方式如下:

title_1,author_1,pages_1,title_2,author_2,pages_2,title_3,auth... 

讀取時迴文件,然後根據您的分離解析文件,你必須回到你的數據。

編輯: 爲@馬克瑟特查建議你不應該使用「,」作爲分隔符,因爲逗號也可能是標題本身的一部分。相反,你應該使用更罕見的字符作爲分隔符,這在書名中不常用。一些實例是「;」「|」或「#」或甚至不可打印字符

+1

由於逗號可以出現在書名中,所以它們可能不是最適合用作CSV的分隔符,因爲標題中的逗號會使解析器相信它現在已經轉移到作者身上。 。你可能更喜歡'|'作爲分隔符,甚至NULL。 –

+0

好的建議 –