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个回答

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");

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

qq_42067972
qq_42067972 多谢指教!
10 个月之前 回复

因为有回车换行,13是回车,10是换行,你记事本打开,把末尾的回车删除试试看

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!