Скажем, у меня есть следующие ...почему использование EOF, чтобы проверить, если STDIN буфер очищается
int main() {
char name [5] = "";
char c;
printf("Enter a name: ");
fgets(name,5,stdin);
while ((c = getchar()) != '\n');
printf("Exiting...);
getchar();
return 0;
}
Петля в то время как очистит буфер STDIN, но я видел цикл сделано, как это, а также ...
while ((c = getchar()) != '\n' && c != EOF);
Мне интересно, есть ли разница между 2 ??? Отличается ли тестирование EOF?
Видя, что 'fgets' читает' newline' в любом случае, что осталось прочитать? –
Ничего ... интересно, почему я видел его в Интернете где-то еще? –
Глядя еще раз на 'char name [5];' вполне возможно, что * есть *, чтобы читать, но вам нужно только очистить ввод, если в конце 'name' нет' новой строки'. –