Provavelmente isso tem a ver com o stdio buffering, conforme identificado e explicado anteriormente na seção de comentários. Nos meus projetos MinGW, tenho usado frequentemente o seguinte constructo:
#define disable_stdout_buffering() do { \ setvbuf(stdout, NULL, _IONBF, 0); } while(0) int main(int argc, char *argv[]) { disable_stdout_buffering(); /* Your code */ exit(EXIT_SUCCESS); }
É claro que você também pode adicionar uma chamada a fflush()
em uma macro de pré-processamento ou ao enviar seus dados para stdout, no entanto, não adiciona uma chamada de biblioteca adicional a cada buffer gravado em seu console.