Why `printf` Flushes on Newlines in C: Buffering Explained | CodeTrail