我想制作一个书籍数据库来记录我读过的书籍。到目前为止,我有一本书入门的结构。读/写几个未知大小的结构文件C++
struct Entry
{
string title;
string author;
int pages;
};
正如您所看到的,标题和作者变量的大小未确定。我想在一个文件中存储几个结构,然后在我想要显示数据库时读取所有这些结构。
如何从文件读取/写入这些结构中的几个?我必须有预定的尺寸吗?请举一个例子。
我想制作一个书籍数据库来记录我读过的书籍。到目前为止,我有一本书入门的结构。读/写几个未知大小的结构文件C++
struct Entry
{
string title;
string author;
int pages;
};
正如您所看到的,标题和作者变量的大小未确定。我想在一个文件中存储几个结构,然后在我想要显示数据库时读取所有这些结构。
如何从文件读取/写入这些结构中的几个?我必须有预定的尺寸吗?请举一个例子。
,你可以很容易地将其存储在一个CSV格式的方式如下:
title_1,author_1,pages_1,title_2,author_2,pages_2,title_3,auth...
读取时回文件,然后根据您的分离解析文件,你必须回到你的数据。
编辑: 为@马克瑟特查建议你不应该使用“,
”作为分隔符,因为逗号也可能是标题本身的一部分。相反,你应该使用更罕见的字符作为分隔符,这在书名中不常用。一些实例是“;
”“|
”或“#
”或甚至不可打印字符
由于逗号可以出现在书名中,所以它们可能不是最适合用作CSV的分隔符,因为标题中的逗号会使解析器相信它现在已经转移到作者身上。 。你可能更喜欢'|'作为分隔符,甚至NULL。 –
好的建议 –
你会需要发明一种文件格式,都描述和包含例如该数据:<长度的场><长度 - 现场>等 –
到目前为止你做了什么?你可以添加代码,你如何写入文件? – OutOfBound
XML或JSON可能是一个很好的格式来保存这些信息 – rak007