markfzc 发表于 2018-5-9 09:22:49

c语言,59课,\n 为什么占两个字节?

问题在// 处
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;

    if ((fp = fopen("hello.txt", "w")) == NULL)
    {
      printf("文件打开失败了\n");
      exit(EXIT_FAILURE);
    }

    printf("%ld\n", ftell(fp));
    fputc('f', fp);
    printf("%ld\n", ftell(fp));
    fputs("ishc\n", fp);
    printf("%ld\n", ftell(fp));// 这里的值变成7

    rewind(fp);
    fputs("hello\n", fp);   //如果去掉 \n 为5
    printf("%ld\n", ftell(fp));

    fclose(fp);

    return 0;
}

BngThea 发表于 2018-5-9 09:31:10

个人理解:
文件写入会在最后自动加入一位
你后面那个是因为后面还有数据

markfzc 发表于 2018-5-9 09:40:46

BngThea 发表于 2018-5-9 09:31
个人理解:
文件写入会在最后自动加入一位
你后面那个是因为后面还有数据

这个问题,我问的有点早,后面明白了。在win系统中\n是两个字节。
页: [1]
查看完整版本: c语言,59课,\n 为什么占两个字节?