请教一个C++问题

saideity 2008-04-08 12:41:05
我想用C++实现读取AVI等媒体文件
大家看一下我的这段程序
if(fileDlg.DoModal()==IDOK)
{
m_edit1=fileDlg.GetPathName();

CFile file(fileDlg.GetFileName(),CFile::typeBinary);

char *pBuf;
DWORD dwFileLen;
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen+1];
pBuf[dwFileLen]=0;
file.Read(pBuf,dwFileLen);

CFile Test("test.avi",CFile::modeCreate|CFile::modeWrite);
Test.Write(pBuf,strlen(pBuf));
Test.Close();

file.Close();

};
为什么只能读取一小部分内容 一遇到00就会跳出
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
读取二进制文件的时候不经该见到strlen相关的函数。
而且打开文件的时候需要以二进制的形式打开。
zhoufuguo8802 2008-04-08
  • 打赏
  • 举报
回复
肯定是那个读取的是遇0就跳的啊!
saideity 2008-04-08
  • 打赏
  • 举报
回复
谢谢啊
kakaying 2008-04-08
  • 打赏
  • 举报
回复
CFile不知道,照理binary模式读取是只跟制定的读取缓冲区大小和文件尾标志有关的,00不应该会跳出。
检查一下Read返回的读取字节数是不是指定的大小?
可以用API试一下,只是相对参数复杂一些,CreateFile(),ReadFile(),WriteFile,CloseHandle();具体使用查msdn
saideity 2008-04-08
  • 打赏
  • 举报
回复
大家帮帮忙啊
saideity 2008-04-08
  • 打赏
  • 举报
回复
那我如何才能做到对所读取的文件进行操作呢 比如说显示文件中的某一段数据 保存为文本文档

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧