qq_42067972 2018-11-27 04:27 采纳率: 100%
浏览 612
已采纳

C语言文件操作问题!!

如下所示的这段代码

 #include <stdio.h>

int main()
{
    FILE *fp=fopen("D:\\english.txt","w");
    putc(10,fp);
    fclose(fp);

    FILE *fq=fopen("D:\\english.txt","rb");
    while(!feof(fq))
    {
        unsigned char ch;
        ch=(unsigned char)getc(fq);
        int buf;
        buf=(int)ch;
        if(buf!=255)
        printf("%d\n",buf);
    }
    fclose(fq);

    return 0;
}

功能就是在文件里写十进制为10、二进制为0000 1010的一个字节,然后读出来。但是为什么读出来的结果是13和10呢?为什么会有13?

  • 写回答

2条回答 默认 最新

  • George_Cao_33 2018-11-27 05:20
    关注

    FILE *fp=fopen("D:\english.txt","w"); 更改为 FILE *fp=fopen("D:\english.txt","wb");
    或者将FILE *fq=fopen("D:\english.txt","rb"); 更改为 FILE *fq=fopen("D:\english.txt","r");

    文件读写方式要保持一致:如:都是二进制形式读写,或者都是字符等

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部