Ответы пользователя по тегу C
  • Почему fgets() работает раньше printf()?

    @Northewind
    engineer
    Все функции выполняются строго в том порядке, в котором вы их прописали. Другое дело, что сообщение, выводимое первым printf ( ) может появляться позже, чем, собственно, чтение fgets ( ).
    Связано это с тем, что printf ( ) пишет строку в поток stdout, который использует построчный буферезированный вывод. Т.е. печать на терминал фактически осуществляется когда встречается символ новой строки.
    Это поведение можно изменить с помощью функции setvbuf ( ).
    В вашем случае также можно просто использовать fflush ( stdout ) для принудительной записи содержимого буфера в поток.
    Ответ написан
    Комментировать