我需要将 jpg 文件读入字符串。我想将此文件上传到我们的服务器,我只是发现 API 需要一个字符串作为此图片的数据。我按照前一个问题中的建议使用 c++ 将图片上传到服务器。
int main() {
ifstream fin("cloud.jpg");
ofstream fout("test.jpg");//for testing purpose, to see if the string is a right copy
ostringstream ostrm;
unsigned char tmp;
int count = 0;
while ( fin >> tmp ) {
++count;//for testing purpose
ostrm << tmp;
}
string data( ostrm.str() );
cout << count << endl;//ouput 60! Definitely not the right size
fout << string;//only 60 bytes
return 0;
}
为什么停在60?60岁是一个奇怪的字符,我应该怎么做才能将jpg读取为字符串?
更新
快到了,但是在使用建议的方法后,当我将字符串重写到输出文件时,它会失真。发现我还应该指定 ofstream 处于二进制模式 by ofstream::binary
。完毕!
ifstream::binary
顺便问一下& 和有什么区别ios::binary
,有什么缩写ofstream::binary
吗?