sppbszc 2023-12-18 00:57 采纳率: 90%
浏览 1
已结题

把结构体输入到文档里时发生错误,如何解决?(语言-c++)

我的代码:
int main()

struct student
{
    int num;
    char name[50];
    float maths;
    float english;
    float cxsj;
    float chxgl;
    float dqxtkx;
    float average;
};

printf("提示:学生总数不得超过1000。\n");
int N;
printf("学生总数为:");
scanf_s("%d", &N);
printf("\n\n");

struct student stu[1000]{};

printf("读入学生成绩:\n\n");

const char* path1 = "C:\\Users\\Desktop\\上课\\大作业\\学生成绩文档.txt";
FILE* p1 = NULL;
int a1 = fopen_s(&p1, path1, "wb+");

student blank1 = { 0," ",0,0,0,0,0,0 };
fwrite(&blank1, sizeof(stu), N, p1);

fclose(p1);

printf("\n以下是已读入的学生成绩:\n\n");

FILE* p11 = NULL;
int a11 = fopen_s(&p11, path1, "rb");

while (feof(p11) == 0)
{
    student stu1;
    fread(&stu1, sizeof(struct student), 1, p11);
    printf("%d %s %f %f %f %f %f %f\n", stu1.num, stu1.name, stu1.maths, stu1.english, stu1.dqxtkx, stu1.cxsj, stu1.chxgl, stu1.average);
}

fclose(p11);

return 1;

}

我想要将四个{0, ,0等等}打印到文档里面,为什么读出来是乱码?我应该怎么改?

img

  • 写回答

1条回答 默认 最新

  • 哎呀呀不会啊 2023-12-18 09:37
    关注

    34行下面 可以使用_mbscrtol函数来设置编码格式为UTF-8

    
        FILE* p11 = NULL;
        int a11 = fopen_s(&p11, path1, "rb");
    
        // 设置编码格式为UTF-8
        setlocale(LC_ALL, "chs");
    
        while (feof(p11) == 0)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月19日
  • 已采纳回答 1月11日
  • 创建了问题 12月18日

悬赏问题

  • ¥100 请教一道在hcl模拟器上配置ospf的题
  • ¥15 在Sqlserver 使用OPENQUERY查询链接数据库MySQL
  • ¥50 如何给网页加一个必须阅读几秒后才可以点击确定的公告弹窗
  • ¥15 人脐静脉内皮细胞(HEUVC)重悬后自动聚团,怎么解决?
  • ¥30 faiss 的 IndexFlatL2 相似性搜索
  • ¥20 找人开发一套大数据算法系统!
  • ¥15 pycharm中cv2安装后可以用但是无法补全或跳转函数,搜索后使用以下方法无效1.重新安装包(更换版本也不行,如何解决?
  • ¥15 如何关闭Win11文件资源管理器的搜索栏的预选词
  • ¥15 odoo17非生产订单产品出库整个业务流程处理
  • ¥20 寻大数据算法的技术!