首页
社区
课程
招聘
[求助]关于fputc函数的bug问题....欢迎讨论
发表于: 2007-2-14 11:34 4153

[求助]关于fputc函数的bug问题....欢迎讨论

2007-2-14 11:34
4153
先看看这段简单的代码:

#include <stdio.h>

void Write(int strMsg[],int size)
{
        FILE *fp;
        if ((fp=fopen("Msg.exe","w+"))==NULL)
                return ;
        for (int i=0;i<size;i++)
        fputc(strMsg[i],fp);
        fclose(fp);
}

int main()
{
        int strMsg[]={0x64,  0x65,  0x2E,  0x0D,  0x0D,  0x0A,  0x24};
        Write(strMsg,7);
        return 0;
}

写入文件结果为:0x64,  0x65,  0x2E,  0x0D,  0x0D,  0x0D,  0x0A,  0x24,  

我只让程序写入了7个数据到文件,可是打开文件后发现了,有8个数据,对于其他常规的数据组合,不会发生这样的情况,不知道是不是fputc函数的一个bug?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
2
if ((fp=fopen("Msg.exe","wb+"))==NULL)
2007-2-14 11:35
0
雪    币: 112
活跃值: (16)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
3
嘿嘿,谢了,原来是这样的,为什么原程序用其他的数据的时候可以得到正确的结果,刚才那组数据就不行了呢,我看这个不行,就用的WriteFile函数写的文件.嘿嘿!
2007-2-14 12:03
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
注意字符和字节的区别,还有这个函数的定义,及操作系统回车的区别,iostream同样有这个问题
2007-2-16 12:38
0
游客
登录 | 注册 方可回帖
返回
//