这是因为在输入名字、QQ和Email时,您使用了scanf函数来读取字符串,而scanf函数会将输入的字符串以空格或换行符分隔开来。因此,如果输入的名字、QQ或Email中包含空格,则scanf函数会将其分割成多个部分。
要解决这个问题,您可以使用fgets函数来读取字符串。fgets函数可以读取包含空格的字符串,并且它会将输入的换行符一起存储在字符串中,因此需要注意清除换行符。
您可以将以下代码替换掉原来的输入部分:
printf("请输入学生的ID:");
scanf("%d", &stu.id);
printf("请输入学生的性别:");
scanf("%d", &stu.sex);
printf("请输入学生的名字:");
getchar(); // 清除上一个输入的换行符
fgets(stu.name, sizeof(stu.name), stdin);
stu.name[strlen(stu.name) - 1] = '\0'; // 清除末尾的换行符
printf("请输入学生的QQ:");
fgets(stu.qq, sizeof(stu.qq), stdin);
stu.qq[strlen(stu.qq) - 1] = '\0';
printf("请输入学生的Email:");
fgets(stu.email, sizeof(stu.email), stdin);
stu.email[strlen(stu.email) - 1] = '\0';
printf("=====学生信息录入完毕=====\n");
这样修改后,您再次运行程序,就会得到正确的输出结果了。希望对您有帮助!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |