【发布时间】:2011-05-02 22:11:13
【问题描述】:
我已经在网上四处寻找并尝试了很多不同的东西,但它们似乎从来没有奏效。每次我运行程序时,它都会跳过输入学生姓名的机会,直接进入系。此外,我们是 C 新手,确实被告知要使用 printf 和 scanf,但是当用户输入像 joe shmo 这样的名称时,它会做一些奇怪的事情。
fputs("Please enter the students name: ", stdout);
fflush(stdout);
fgets(studentArray[empty].name, sizeof studentArray[empty].name, stdin);
printf("\nPlease enter the students department: ");
scanf("%s", studentArray[empty].department);
printf("\nPlease enter the students rank: ");
scanf("%d", &studentArray[empty].rank);
编辑:奇怪的东西,如果我输入两个名称,即 joe shmo,它将以 joe 作为名称并自动将 shmo 添加到部门。 studentArray 是我制作的结构体数组...
typedef struct {
char name[MAX_NAME_LENGTH];
char department[MAX_DEPT_LENGTH];
int rank;
} student;
【问题讨论】:
-
请定义“奇怪的东西”。另外,请提供
studentArray的定义。 -
在此之前有没有你没有显示的代码?
-
尽量不要混用
scanf()和fgets()——首选fgets(),然后解析输入。
标签: c