寻求帮助,善良的人进!

guankaifu 2003-09-11 11:39:25
为什么我把程序改成这样就不能用了啊?
CFile MyFile;
char* buf=new char[1];
MyFile.Open("test.txt",CFile::modeRead);
MyFile.Read((void*)&buf,1);//只读取3位
MyFile.Close();

CString strOutput;
strOutput.Format("%d",atoi(buf));
pDC->TextOut(0,0,strOutput);

test.txt文件内容如下:3
有人能帮我吗??
万分感谢。。祝帮助我的好人万事如意中秋快乐!
...全文
74 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guankaifu 2003-09-12
  • 打赏
  • 举报
回复
感谢所有参与的朋友,你们的帮助就是我最大的动力!

我发了很多这个问题的帖子,一方面是为了解决问题。
一方面是为了从中,学到一些题外的知识。。我希望问题和答案可以灵活化。
这就是我的提问的原则。谢谢大家。
正确的答案我已经找到了。。谢谢。
bluebohe 2003-09-11
  • 打赏
  • 举报
回复
你把buf的空间申请成2,设置buf[1]=0你的程序中把buf当成字符串,字符串以0结尾
zhenbe 2003-09-11
  • 打赏
  • 举报
回复
改为MyFile.Read((void*)buf,1);
是对的(而且必须是这样的)。
看看是不是其他错误。
孤必有邻 2003-09-11
  • 打赏
  • 举报
回复
怀疑是不是文件打开失败,这样Read执行出错。
CFile MyFile;
char* buf=new char[1];
if(MyFile.Open("test.txt",CFile::modeRead))
{
MyFile.Read((void*)&buf,1);//只读取3位
MyFile.Close();
}
tyro_zhang 2003-09-11
  • 打赏
  • 举报
回复
改为:
CFile MyFile;
char* buf=new char[1];
MyFile.Open("test.txt",CFile::modeRead);
MyFile.Read((void*)&buf,1);//只读取3位
MyFile.Close();

//add//只读取3位(3字节?)
buf[3]=0x00;

CString strOutput;
strOutput.Format("%d",atoi(buf));
pDC->TextOut(0,0,strOutput);

应该可以.
guankaifu 2003-09-11
  • 打赏
  • 举报
回复
把MyFile.Read((void*)&buf,1);//改为MyFile.Read((void*)buf,1);//
输出结果依然错误。。求答案。。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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