这是什么情况,输出乱码

为什么会这样?


struct Account
{
    char cardNum[16];
    char userName[30];
    char balance[50];
};

char ch;
    FILE* fp;
    if ((fp=fopen("D:\\华软2021-2022\\c2\\ATM模拟机\\accounts.txt", "r")) == NULL) {
        printf("文件打开错误");
        exit(0);
    }
    struct Account user;
    fread(&user,sizeof(user),1, fp);
    fclose(fp);
    puts(user.userName);

img

img

两问题:1.fread要用二进制,源文件要用二进制写入。2.打印汉字要用宽字符。