Есть вот такая функция считывания строки. Внутри используется функция
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;
}