如何读取图像文件并将其存储在c ++的内存(std :: string)中?

Pro*_*ter 7 c++ string binary image file

我今天大部分时间都在线研究,但找不到答案,所以我转向stackoverflow提出一些建议.

基本上,我有一个c ++库,使用curl执行PUT方法上传图像文件.现在这个库为数据采用std :: string.我在本地磁盘上有图像文件(如jpg,gif,png).

我不关心文件的内容(因为,除了将其传递给PUT方法的库之外,我不做任何事情).我怎样才能读取图像文件并将其存储在std :: string中?如果文件内容包含NULL终止符怎么办?

我试图添加一些我尝试过的代码,但我是新来的,我不知道如何以正确的格式粘贴我的代码.任何帮助,将不胜感激.

Ben*_*ley 5

我能想到的最简单的方法。以二进制模式打开文件,然后将整个文件读入stringstream.

std::ifstream fin("foo.png", std::ios::in | std::ios::binary);
std::ostringstream oss;
oss << fin.rdbuf();
std::string data(oss.str());
Run Code Online (Sandbox Code Playgroud)