我正在读取文件(图像)的字节,然后转换为base64。
字节被写入一个名为buffer的char向量,因为我没有找到将文件中的字节写入char数组的工作示例
我像这样做char矢量:
ifstream infile("image.png", ios_base::binary);
infile.seekg(0, ios_base::end);
size_t length = infile.tellg();
infile.seekg(0, ios_base::beg);
vector<char> buffer;
buffer.reserve(length);
copy(istreambuf_iterator<char>(infile),
istreambuf_iterator<char>(),
back_inserter(buffer)); infile.read(&buffer[0], length);
base64编码功能是:
int base64_encode(unsigned char *source, size_t sourcelen, char *target, size_t targetlen);
我需要将base64编码的文本发送到网站,以便它可以显示在页面上。例如。
答案 0 :(得分:2)
在c ++中,向量是动态分配的数组。无论何时调用.push_back()
方法,都会使用附加在数组末尾的新数据重新分配数组。如果你真的需要将数据从向量传输到常规数组,你可以使用for循环将数据分配给数组,如下所示:
for (int i = 0; i < vec.size() && i < arrLen; i++) {
arr[i] = vec[i];
}
虽然考虑向量的一个更好的方法是动态分配的数组,但是将向量的第一个元素的原始指针传递给函数。
foo(&vec[0]);
OR
foo(vec.begin());