Al posto della system("pause") potresti mettere una semplice getchar() di cui non prendi il valore:

codice:
printf("Programma terminato, premere invio per continuare\n");
getchar();
Invece di fare una chiamata di sistema che tra l' altro è dispendiosa.

Comunque penso che si dovrebbe mettere un thread permanente che spiega come risolvere questo problema del buffer, è una cosa controintuitiva per il programmatore alle prime armi.