问题描述
当我运行以下代码时,可以输入名称和名册,但无法读取课程名称,它直接传递给标记。我了解这个问题。 fgets函数读取一个空间,以便传递给标记,但是要读取的空间在哪里。我通过编写scanf(“ \ n”)解决了这个问题,这不是我想要执行的方式。您知道为什么fgets读取空间吗?
#include <stdio.h>
#define SIZE 50
struct student {
char name[SIZE];
int roll;
char courseName[SIZE];
float marks;
} stu1;
//struct student stu1;
int main() {
printf("Please Enter the student information:\n\n");
printf("Enter name: ");
fgets(stu1.name,SIZE,stdin);
printf("Enter roll number: ");
scanf("%d",&stu1.roll);
printf("Enter the course name: ");
//scanf("\n");
fgets(stu1.courseName,stdin);
printf("Enter marks: ");
scanf("%f",&stu1.marks);
printf("\nThe information you you entered:\n\n");
printf("Name: %s",stu1.name);
printf("Roll number: %d\n",stu1.roll);
printf("Course name: %s",stu1.courseName);
printf("Marks: %.1f",stu1.marks);
return 0;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)