Problem mit scanf
-
Hallo.
Ich bin Neueinsteiger in C++ und habe Probleme mit dem Befehl scanf. Immer wenn ich diesen Befehl verwende, beendet das Programm hinterher sofort, obgleich ich den Befehl getchar() verwendet habe. Besteht mein kleines Programm hingegen nur aus Printf-Anweisungen, so bleibt der Bildschirm erhalten, bis ich Enter drücke (wie es wohl auch normalerweise sein müsste).
Ich zeig mal den Code des Programms, das zwar ausgeführt wird, aber eben sofor nach der Eingabe eines Wertes beendet wird:
/* c_v_cpp.c */
#include <stdio.h>
int main(void) {
int Geburtsjahr;
printf ("Gib dein Geburtsjahr ein: ");
scanf("%i",&Geburtsjahr);
printf ("Danke!");
getchar();
return 0;
}Ich denke, ihr könnte mir da sicher helfen.

Freundliche Grüße,
Leader87.
-
Kleine Korrektur: Du bist Neueinsteiger in der Programmiersprache C und nicht C++. C++ ist eine andere Programmiersprache.
-
Das Zeilenende-Zeichen '\n' steht noch im Eingabepuffer, daher wird das von getchar() ausgelesen und das Programm beendet.
Du kannst entweder ein zweites Mal getchar() schreiben oder aber die Funktion ignore() aus dem Post von CStoll im Thread http://www.c-plusplus.net/forum/viewtopic-var-t-is-157723-and-start-is-0.html verwenden.