在我的MFC应用程序中,我使用CFile类将数据写入文件。我对每个数据成员按顺序使用Write()方法存储CParagraph类的对象序列。我使用then Read()方法将文件读入内存。CParagraph的一个成员曾经是int类型,但现在我必须将其更改为size_t,因为int不能容纳足够大的数据。如果我的应用程序读取了在此更改之前创建的文件,然后将一个CParagraph对象保存回该文件中,则size_t的大小将传递给Write方法,而不是传递给int的大小,因此该文件将增长。我的问题是:在对象被修改和保存之后写入的数据是否会因为对象变得更大而被覆盖并因此损坏?
谢谢。
发布于 2011-09-14 02:11:01
是。如果文件中的任何内容更改了大小,则必须重新保存它之后的所有内容。
将“版本”字符保存为文件的第一部分是很常见的。然后,当您需要调整变量大小(或更改大量内容)时,您可以在保存时更改版本。然后,在加载时,您可以检查版本,并使用相应的代码加载它。然后,您仍然可以打开旧版本的文件。请注意,此版本仅应在文件格式更改时更改,而不应在重建/释放时更改。
https://stackoverflow.com/questions/7406331
复制相似问题