C/C++图片或文件的读写

先看代码:


/*strTmpResult是文件或图片字符串
* filePath文件需要写入的地址或路径
*/
int writeFile(std::string &strTmpResult,std::string &filePath)
{
int i,len = strTmpResult.length();
unsigned char pOut[len];
for (i=0;i<len;++i)
{
pOut[i] = strTmpResult[i];
}

FILE* pFout ;
// 检查文件是否上传成功
if ((pFout = fopen(filePath.c_str(), "wb+")) == NULL)
{ fclose(pFout);
TLOG_ERR("writeFile上传文件失败");
throw Ex(ERR_RULE_FILEUPLOAD);
}
fseek(pFout, 0, SEEK_SET);
// 附件内容
if (fwrite(pOut, len, 1, pFout) < 0)
{
fclose(pFout);
TLOG_ERR("writeFile上传文件失败2");
throw Ex(ERR_RULE_FILEUPLOAD);
}
fclose(pFout);
TLOG_ERR("writeFile写完成");
return 0;
}

说一说我遇到的事:
if ((pFout = fopen(filePath.c_str(), "wb+")) == NULL)
这句中我一开始是将“wb+"改成”w+",其实是复制人家的代码,导致的结果是我的图片写成功了,但是就是打开后看不成,最后费了好大的劲查了结果才知道应该加入b,要以二进制的形式写图片就成功了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值