【发布时间】:2017-03-05 16:43:45
【问题描述】:
我正在读取文件(图像)的字节,然后转换为 base64。
字节被写入一个称为缓冲区的字符向量中,因为我还没有找到将文件中的字节写入字符数组的工作示例
我是这样处理 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 编码的文本发送到网站,以便它可以显示在例如页面上。
【问题讨论】:
-
我不明白你为什么认为你需要“转换”任何东西。您是否只需将指向向量缓冲区的指针指向
base64_encode?您是否考虑阅读std::vector的文档以了解它可以做什么? -
抱歉,有什么问题,有什么问题?
-
如何将 char 向量转换为 char 数组与“我需要将 base64 编码的文本发送到网站”相关?另外,在文件的全部内容被
std::copy()吞没之后,你打算通过那个看起来很奇怪的read()来完成什么????
标签: c++ arrays vector type-conversion