【发布时间】:2016-12-10 18:50:46
【问题描述】:
我有一个长数组,我想将每个元素写入一个二进制文件。我知道您使用write() 写入二进制文件,但write() 接受两个参数:一个指向char 数组(缓冲区)的指针和一个数字。由于我有一个长数组,我无法使用write() 进行编写。我什至尝试将指向 long int 数组的指针直接传递给第一个参数,但它产生了编译器错误。
这是我正在尝试做的一个示例:
long* arr = new long [999999];
// imaginary code that fills arr with data
file.write(arr,1000000);
如何将我的 long 数组写入二进制文件? 我考虑过以某种方式将 long 转换为 char,但我怀疑这是否可行,并且在数据类型之间的转换。另外,我在编译代码的时候,编译错误留下了这个注释:“no known conversion for argument 1 from 'long int*' to 'const char*'”。
感谢您的帮助。
【问题讨论】:
-
“因为我有一个 long 数组,所以我不能使用 write() 写入” 为什么不呢?
-
“我考虑过以某种方式将 long 转换为字符,但我非常怀疑这是否可行” 为什么不呢?
-
好奇您进行了哪些研究,因为这已成为 40 年来的常用技术。
-
好吧,我确实指定了我试图暴力破解它,但它没有用。对我来说,蛮力强迫它意味着这样做......
标签: c++ file io binaryfiles