请问这两段代码输出的结果怎么不一样

zwzzwz 2004-08-31 02:05:38
请问这两段代码输出的结果怎么不一样。
代码段1:
ifstream input("C:\\111.raw");
BYTE nTemp;
for (int i=0;i<12;++i)
{
for (int j=0;j<20;++j)
{
input>>nTemp;
TRACE("%u,",nTemp);
}
TRACE("\n");
}
代码段2:
FILE *pFile=fopen("c:\\1111.raw","rb");
BYTE nTemp;
for (int i=0;i<12;++i)
{
for (int j=0;j<20;++j)
{
fread(&nTemp,1,1,pFile);
TRACE("%u,",nTemp);
}
TRACE("\n");
}

fclose(pFile);
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
短歌如风 2004-08-31
  • 打赏
  • 举报
回复
ifstream input("C:\\111.raw", ios_base::binary);
这样才和第二段一样。原因goodboy1001已经说了。
waini11 2004-08-31
  • 打赏
  • 举报
回复
谁说“rb”是二进制的意思呀 还有FILE* TRACE BYTE 这三个类型定义我怎么在文件I/O流里没发现呀
积木 2004-08-31
  • 打赏
  • 举报
回复
FILE *pFile=fopen("c:\\1111.raw","rb");
看到后面的rb了吧,这段代码是用二进制方式打开的,它和普通的打开方式不同之处在于其不过滤掉格式符号,按照文件原有的数据给出,就是一BYTE-BYTE的。所以结果会不同。

64,679

社区成员

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

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