【发布时间】:2012-04-21 03:14:59
【问题描述】:
我正在解决一个问题,但我不确定我是否正确执行此操作,或者我是否有正确的方法。到目前为止,我的代码只给了我段错误。
我有一个简单的小收据编写程序来练习一些 C++ 概念,其中之一是二进制文件 i/o。我有几个数组保存数据(一个保存服务类型的字符串,另一个保存相应的双倍成本)。我有一个小菜单,二进制部分的书写很好。但是,我不确定如何从文件中读取这些内容。
我目前正在使用一个结构来保存各种数据成员(客户姓名、总费用等),并且我想将他们选择的所有服务以及相应的价格写入一个文件,然后能够读回来。这些当前存储在结构中的向量中。
我想我了解如何从二进制文件读取/写入字符串(写入字符串的长度,然后写入数据,然后读取长度,然后将那么多字节读取到字符串中)。但是我如何用向量做到这一点?我了解如何使用固定大小成员(即整数)的向量来完成它,但是字符串向量呢?在这种情况下,成员没有设置大小,所以我不知道如何读取它们。
这甚至可能吗?如果有人能指出我正确的方向,那将非常有帮助。大约一年前有一个类似的论坛发布,但它对我没有多大帮助。
tl;dr -- 如何从二进制文件中读取可变长度字符串的可变大小向量?
【问题讨论】:
-
我们需要查看代码才能为您提供帮助
-
查看 Boost 序列化 boost.org/doc/libs/1_49_0/libs/serialization/doc/index.html>
-
你试过在调试器中运行程序吗?它将帮助您查明段错误的位置,还可以让您检查变量以了解可能的原因。
-
本质上只是阅读过程的递归堆叠。
标签: c++ string file vector binary