![](/img/trans.png)
[英]C++: fastest to write vector file to output in normal text mode (not binary) in C or C++
[英]how to write a vector to a file in binary mode using c++?
到目前为止我试过这个,
#include<iostream>
#include<fstream>
#include <stdlib.h>
#include<vector>
using namespace std;
int main()
{
unsigned short array[3]={0x20ac,0x20ac,0x20ac};
vector<unsigned short> v;
std::ofstream file;
file.open("1.txt", std::ios_base::binary);
file.write((char*)(array), sizeof(array));
v.push_back(array[0]);
v.push_back(array[1]);
v.push_back(array[2]);
file.write((char *)v,sizeof(v));
file.close();
}
我收到一条错误消息stan.cpp:在函数'int main()'中:stan.cpp:21:23:错误:无效从类型'std :: vector'转换为'char *'类型。
您必须找到指向第一个元素的指针,然后根据元素的v * size中的元素数计算字节数:
file.write((char*)(&v[0]), v.size() * sizeof(v[0])) ;
输出:
% od -x 1.txt
0000000 20ac 20ac 20ac
您应该逐个编写每个元素,或者通过write(v.data(), v.size() * sizeof(unsigned short))
写入整个数据write(v.data(), v.size() * sizeof(unsigned short))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.