Dipende dall'"
ambiente" entro cui stai visualizzando l'output.
Come programmi in C? Dentro un IDE? Dal blocco note? Da dentro un editor a riga di comando?
E soprattutto, come fai il test dell'esecuzione? Da dentro un IDE? Da dentro il prompt dei comandi?
In quale sistema operativo sei?
Brevemente: quando il tuo programma termina, fine! Termina! Non deve fare null'altro!
L'output è e rimane su una cosa che ancora forse non conosci ma che si chiama stdout (se non hai modificato nulla), che è un valore di tipo FILE* associato a uno stream (ambienti POSIX), il numero 1 per la precisione.
Il problema di "vedere" l'output non ha nulla a che fare con il tuo programma, e in teoria non è nemmeno una cosa da programmazione, quindi la cosa migliore è di capire l'ambiente entro cui lavori e operare al suo interno per essere sicuro.
Preferibilmente, se
io devo controllare l'output di un programma, e questo output va su stdout (normalmente collegata allo schermo),
allora eseguo il mio programma da dentro un prompt dei comandi (shell, terminale, console, chiamatela come volete) e, nel caso in cui l'output sia troppo lungo a) lo redirigo su un file (che posso poi ispezionare con calma con il Blocco note) oppure b) uso un comando come more o less messo in pipe (cioè scrivo tipo
./mioprogramma | less oppure
mioprogramma.exe | more).
Allo stato attuale delle cose, se di ciò che ho scritto non sai nulla, invocare
getchar () è la cosa migliore

!