Следующее работает, если fgets()
«пропущен» после использования scanf()
После того, как вы сказали:
scanf("%d", &loops);
Скажите:
char garbage[100];
fgets(garbage,100,stdin);
Это сохранит все, что осталось на входном буфере, в переменную мусора.
Это эффективно очистит входной буфер и позволит вам впоследствии использовать fgets()
.
EDIT: I недавно выяснили, что есть более легкое решение, чем выше. Если вы скажете getchar () после scanf (), это позволит вам использовать fgets () без проблем. getchar () получит следующий символ во входном буфере, который в этом случае будет «\n». После удаления '\n' из входного буфера fgets должен работать нормально.