问题遇到的现象和发生背景
用fscanf %s读取汉字再输出,汉字变了
001 李大 003 000 1101000000000000000000000 12
李大变成了鏉庡ぇ
之前运行可以正常运行,但是后面就不可以了
问题相关代码,请勿粘贴截图
typedef struct student
{
int id;//学号
char name[100];//姓名
int must_num;//已选必修课程数量
int select_num;//已选选修课程数量
int class_form[25];//按照课程id排序,0表示未选,1表示已选
int score;//当前总学分
struct student* next;
}STUD;//定义学生结构体
fp2 = fopen("student.txt", "r+");
fscanf(fp2, "%3d%c", &Student->id);
fscanf(fp2, "%s", Student->name);
fscanf(fp2, "%*c%3d", &Student->must_num);
fscanf(fp2, "%*c%3d%*c", &Student->select_num);
for (int i = 0; i < 25; i++)
{
fscanf(fp2, "%1d", &Student->class_form[i]);
}
fscanf(fp2, "%*c%3d\n",&Student->score);
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
汉字正常读取