Das ist das Programm (C++), um das es geht.

int main(void)

{

int a,b;
scanf("%i", &a);
scanf("%i", &b);
printf("Die Summe von %i und %i ist %i.", a, b, a+b);
fflush(stdin);
getchar();
return 0;

}

Und jetzt frage ich mich, wozu ich das fflush(stdin) benötige. Ich weiß, dass es den Speicher löscht, also in dem Fall halt das was mit der Standardeingabe, sprich Tastatur, eingegeben wurde. Und dass wenn man es weglässt, sich das Fenster auch mit getchar sofort wieder schließt ohne dass man von dem printf viel mitkriegt, aber ich verstehe nicht warum.

getchar sorgt doch eigentlich dafür, dass sich das Fenster erst bei Drücken von Enter wieder schließt, oder? Klar, nach jedem scanf muss man zum Bestätigen der Zahl Enter drücken. Nimmt das zweite Enter dann gleich getchar, oder wie?

Und dann hätte ich noch eine Frage. Da fflush(stdin), nach dem was viele sagen, eigentlich undefiniertes Verhalten hat, auch wenn viele Compiler es trotzdem schlucken...was soll es denn normal machen? Ich hab irgendetwas mit Puffer gelesen, aber kapiert habe ich es nicht. Wäre nett, wenn mir das auch jemand erklären könnte.