Когда вы вызываете printf
, вывод не распечатывается сразу;вместо этого он уходит в буфер где-то за кулисами.Чтобы заставить его отображаться на экране, вам нужно вызвать fflush
или что-то подобное, чтобы очистить поток.Это делается автоматически для вас каждый раз, когда вы печатаете символ новой строки * и когда программа завершается;это второй случай, когда строка удаляется при удалении бесконечного цикла.Но с этим циклом программа никогда не заканчивается, поэтому вывод никогда не сбрасывается на экран, и вы ничего не видите.
* Как я только что обнаружил из прочтения вопроса, его вопрос связан вкомментарий, сброс строки происходит только тогда, когда программа печатает на терминал, и не обязательно, когда она печатает в файл.