【发布时间】:2014-02-23 23:44:26
【问题描述】:
在你问我是否在发这篇文章之前搜索过信息之前(因为我知道你会问它),是的,我做过。
我正在做一个程序,我在将数据保存在二进制文件中后加载数据。当我尝试从二进制文件中读取数据时遇到问题,在寻找失败的几个小时后,我仍然不知道是什么。
首先,我将信息存储在二进制文件中:
ofstream of;
of << s.num;
of << s.array;
num 是 int,array 是 char 数组[kARRAY]
然后我试着这样读:
ifstream fi;
int auxNum;
char auxArray[kARRAY];
fi >> auxNum;
fi >> auxArray;
从二进制文件中读取信息后,我尝试将该值分配给另一个相同类型的变量,但我得到错误和更多错误...
char arrayResult[kARRAY];
arrayResult = auxArray;
我做错了什么?由于我是从二进制文件中读取,我应该使用特定的功能吗?
谢谢!
【问题讨论】:
-
SSCCE 会很有用。我真的不明白为什么该文件是二进制文件,我无法在我的计算机上尝试您的代码,因为我没有它。
-
你遇到了什么错误?
-
另外,您可能想要使用
std::copy(auxArray, auxArray + kARRAY, arrayResult)或改用std::string。 -
我得到的错误是“无效的分配矩阵”。该文件是二进制文件,因为扩展名为 .dat。
-
请告诉我们您用于流的构造函数参数。此外,对于二进制数据,使用 std::vector
而不是 C 样式的数组更实用。
标签: c++ arrays binaryfiles binary-data