红花不油 2023-03-30 16:26 采纳率: 60%
浏览 71
已结题

c语言关于文件保存后乱码的问题

提问:为什么保存到txt文件后乱码了,该如何解决呢?
代码如下:

void filesave()
{
    FILE* fp;//声明fp是指向FILE类型的指针
    fp = fopen("admin.txt", "w");
    if (fp == NULL)
    {
        printf("文件打开失败\n");
        exit(0);// 终止调用进程
    }
    fwrite(admins, sizeof(struct admin), M, fp);
    fclose(fp);

    FILE* fq;
    fq = fopen("dishes.txt", "w");
    if (fq == NULL)
    {
        printf("文件打开失败\n");
        exit(0);
    }
    fwrite(dishes, sizeof(struct dish), H, fq);
    fclose(fq);

    FILE* fz;
    fz = fopen("tables.txt", "w");
    if (fz == NULL)
    {
        printf("文件打开失败\n");
        exit(0);
    }
    fwrite(tables, sizeof(struct table), N, fz);
    fclose(fz);

    FILE* ft;
    ft = fopen("table_dishes.txt", "w");
    if (ft == NULL)
    {
        printf("文件打开失败\n");
        exit(0);
    }
    fwrite(table_dishes, sizeof(struct dish), N * H, ft);
    fclose(ft);
    printf("\t\t\t");
    printf("信息保存成功!\n");
}

  • 写回答

5条回答 默认 最新

  • 加法器+ 2023-03-30 18:41
    关注

    引用chatgpt回答:
    文件保存后出现乱码的问题可能是因为文件的编码格式与打开文件时指定的编码格式不匹配。在C语言中,可以使用fopen函数来打开文件,同时指定文件的读写方式和编码格式。如果没有指定编码格式,则默认使用本地系统的默认编码格式,可能会导致文件保存后出现乱码。

    解决这个问题的方法是,可以在使用fopen函数打开文件时,指定编码格式。例如,如果想要将文件保存为UTF-8编码格式,可以使用如下代码:

    FILE *fp = fopen("filename.txt", "w, ccs=UTF-8");
    
    
    

    在这个例子中,我们使用了ccs=UTF-8来指定文件的编码格式为UTF-8。如果你想使用其他编码格式,可以将UTF-8替换为对应的编码格式即可。

    需要注意的是,如果在保存文件时使用了错误的编码格式,那么打开文件时指定的编码格式也必须与之匹配,否则依然会出现乱码问题。因此,在使用fopen函数时,建议明确指定文件的编码格式,避免出现不必要的问题。

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

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 3月30日

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备