【发布时间】:2014-12-06 17:40:10
【问题描述】:
我试过环顾四周,但似乎找不到错误所在。我知道这一定与我使用 fgets 的方式有关,但我一生都无法弄清楚它是什么。我读过混合 fgets 和 scanf 会产生错误,所以我什至将我的第二个 scanf 更改为 fgets,它仍然会跳过我的其余输入,只打印第一个。
int addstudents = 1;
char name[20];
char morestudents[4];
for (students = 0; students<addstudents; students++)
{
printf("Please input student name\n");
fgets(name, 20, stdin);
printf("%s\n", name);
printf("Do you have more students to input?\n");
scanf("%s", morestudents);
if (strcmp(morestudents, "yes")==0)
{
addstudents++;
}
}
我的输入是 Joe,是的,Bill,是的,John,不是。如果我使用 scanf 代替第一个 fget,一切都会按计划进行,但我希望能够使用包含空格的全名。我哪里错了?
【问题讨论】: