2017-10-13 155 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

好的建议 –