Если бы мне пришлось угадывать, это побочный эффект того факта, что fgetl
ожидает «правильный» файл. Он не предназначен для интерактивного использования.
Как таковой, он пытается выяснить, является ли следующая строка концом файла или пустой строкой, для соответствующей обработки предыдущей новой строки. (Вы можете себе представить, например, если файл запускается с символом EOF перед новой строкой, это должно быть обработано специально). Или это может даже касаться попыток надлежащим образом справиться с ограничителями строки между операционными системами ...
В любом случае, если вам нужен именно интерактивный ввод, вам, вероятно, следует просто использовать команду input
вместо этого.