当前位置:首页 > 开发 > 编程语言 > C/C++ > 正文

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

发表于: 2015-04-25   作者:bitcarter   来源:转载   浏览:
摘要: 先看代码: /*strTmpResult是文件或图片字符串 * filePath文件需要写入的地址或路径 */ int writeFile(std::string &strTmpResult,std::string &filePath) { int i,len = strTmpResult.length(); unsigned cha
先看代码:

/*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,要以二进制的形式写图片就成功了

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号