一个c++问题,在线等!急着要用谢谢!

AnsiStringsfile=m_SamplePath+"测试.jpg";FILE*f=fope(sfile.c_str(),"rb");是什么意思?这个一段是什么意思... AnsiString sfile=m_SamplePath+"测试.jpg";
FILE* f=fope(sfile.c_str(),"rb");
是什么意思?
这个一段是什么意思,没玩过C++谢谢各位了
展开
 我来答
缘齐咏
2018-04-16
知道答主
回答量:8
采纳率:100%
帮助的人:2.7万
展开全部
可以解释成:
第一行:先定义Ansi的字符类型地址叫sfile,他的文件路径由m_SamplePath+"测试.jpg";拼接而成,例如:D://picture/测试.jpg,

第二行:定义一个文件对象,使用fopo函数打开,函数第二个参数:r:表示只读的方式打开。b:表示打开的是二进制文件形式。
简单的来说,这个代码就是读取一张图片二进制信息。
追问

麻烦您还是帮我解释一下这个图片上的意思,刚才图片传不上来

追答
第三行:判断文件如果为空,直接返回
第四行:使用fseek函数,将文件读写位置指针移动到文件尾。
第五行:使用ftell函数,取得文件当前指针位置到文件头的偏移字节数,相当于4,5行得到了这个图片文件的字节总大小。
第六行:和第四行相反,将指针位置移动到文件头。
第七行:定义一个字符数组,长度为图片的长度,用于存储文件,相当于buffer缓冲区。
第八行:使用fread函数,将file图片去取到buf缓冲区内。用于后续操作。
第九行:关闭文件流,释放文件。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式