[c] Why does printf not flush after the call unless a newline is in the format string?

To immediately flush call fflush(stdout) or fflush(NULL) (NULL means flush everything).