我有:
typedef unsigned char;
std::vector<byte> data;
我试图以这种方式将数据保存在文件中(但我有错误):
fstream file(filename,ios::out);
file.write(&data, data.size());
如何处理或转换数据以将其写入文件。
发布于 2014-03-26 05:47:10
要将向量存储在文件中,必须编写向量的内容,而不是向量本身。您可以使用&vector[0]
访问原始数据,即第一个元素的地址(假定它至少包含一个元素)。
ofstream outfile(filename, ios::out | ios::binary);
outfile.write(&data[0], data.size());
这应该是相当有效率的写作。fstream
是通用的,如果要编写,请使用ofstream
。
发布于 2014-03-26 05:54:13
*语句file.write(&buffer[0],buffer.size())
出错:
错误C2664:'std::basic_ostream<_Elem,_Traits>::write‘:无法将参数1从’无符号字符*‘转换为'const char *’
*在我的编译器(VS2008)中,我没有用于向量的data()方法。
我认为以下是正确的:
file.write((const char*)&buffer[0],buffer.size());
发布于 2014-03-26 05:45:45
使用矢量::数据获取底层数据的指针:
file.write(data.data(), data.size());
https://stackoverflow.com/questions/22662728
复制相似问题