fopen 获取二进制数据串,该如何处理
fopen 获取二进制数据串
新手求教
读取C:\\test.jpg文件,以二进制方式存储在一个buffer中,
需求是,把一个图片以二进制方式取出,然后把二进制数据POST到WEBSERVICE
请问怎么样把图片读到BUFFER中,谢谢
FILE *file;
file = fopen("c:\\test.jpg", "rb");
fread(buffer,1,5000,file);
fclose(file);
std::string result=buffer;
printf("%s\n",result.data());
这样好像不对,有人指点一下吗
------最佳解决方案--------------------
BYTE * buffer;
FILE *file;
file = fopen("c:\\test.jpg", "rb");
fseek(f, SEEK_END);
int length = ftell(f);
buffer = (BYTE *)malloc(length*sizeof(BYTE));
fseek(f, SEEK_SET);
fread(buffer,sizeof(BYTE),length,file);
fclose(file);
//.....
free(buffer);
byte数据不能用%s显示的,不是字符串
------其他解决方案--------------------
读的没问题,但要保证数据长度小于5000。这句不对吧std::string result=buffer;不能把二进制数据赋给string。
------其他解决方案--------------------
auto len = fread(buffer,1,5000,file);
fclose(file);
std::string result(buffer, len);
验证正确与否不能用打印。
新手求教
读取C:\\test.jpg文件,以二进制方式存储在一个buffer中,
需求是,把一个图片以二进制方式取出,然后把二进制数据POST到WEBSERVICE
请问怎么样把图片读到BUFFER中,谢谢
FILE *file;
file = fopen("c:\\test.jpg", "rb");
fread(buffer,1,5000,file);
fclose(file);
std::string result=buffer;
printf("%s\n",result.data());
这样好像不对,有人指点一下吗
------最佳解决方案--------------------
BYTE * buffer;
FILE *file;
file = fopen("c:\\test.jpg", "rb");
fseek(f, SEEK_END);
int length = ftell(f);
buffer = (BYTE *)malloc(length*sizeof(BYTE));
fseek(f, SEEK_SET);
fread(buffer,sizeof(BYTE),length,file);
fclose(file);
//.....
free(buffer);
byte数据不能用%s显示的,不是字符串
------其他解决方案--------------------
读的没问题,但要保证数据长度小于5000。这句不对吧std::string result=buffer;不能把二进制数据赋给string。
------其他解决方案--------------------
auto len = fread(buffer,1,5000,file);
fclose(file);
std::string result(buffer, len);
验证正确与否不能用打印。