How to put "printf" on console Debug QEMU on Eclipse STM32F4
This is a standard feature of the C library. Standard output (and input) is line buffered by default, therefore it will be held in a buffer (by the target libc) until/unless you do one of the following


send a newline character to stdout
call fflush(stdout)
turn off buffering with setbuf() or setvbuf() (do this before the very first output)


Standard error is not buffered, unless you tell the library otherwise, therefore you'd see every character immediately even if there is no newline.