Есть вот такая функция считывания строки. Внутри используется функция
fgets(). Данная функция возвращает
NULL если произошла какая то ошибка
или был достигнут конец файла.
При каких условиях происходит обнаружение "конца файла" при считывании с клавиатуры?
char * s_gets(char * str, int n)
{
char * return_value;
int i = 0;
return_value = fgets(str, n, stdin);
if (return_value)
{
while (str[i] != '\n' && str[i] != '\0')
i++;
if (str[i] == '\n')
str[i] = '\0';
else
while (getchar() != '\n')
continue;
}
return return_value;
}