用C ++编写数组的一部分到文件

时间:2011-09-18 23:47:09

标签: c++

我想写k个元素从k * i开始写入文件。所以在for循环中我写如下:

    testOut.write((char*) h_test[k*i] ,k*sizeof(float));

我收到此错误“从'float'类型无效转换为'char *'”

类型

我该如何纠正?

2 个答案:

答案 0 :(得分:3)

如果你想用二进制文件写它们,你可以这样做:

testOut.write( reinterpret_cast<const char*>(h_test + k*i), k*sizeof(float));

h_test + k*ifloat指针的地址,您可以将其重新解释为const char*,以便write可以接受它。请注意,添加到指针会增加指针,并考虑指向的元素大小,并在之后转换指针

最后,write接受const char*,而非char*

答案 1 :(得分:1)

我认为write需要char *和一个大小。试试这个:

testOut.write((char*)&h_test[k*i], k*sizeof(float));

h_test可能是float的数组。你试图像这样取消引用它:

h_test[k*i]

这是float,而不是float *。要使其成为指针,请使用&运算符。