wie kann ich bei der Eingabe nur (ganze) Zahlen zulassen?
scanf stürzt bei mir sofort ab, wenn ich was falsches eingebe. Also das Programm wird geschlossen und ich kann keine Überprüfung mit Rückgabewerten machen.
Ich kenne noch getchar() und gets(). Damit könnte ich theoretisch die Eingabe als String einlesen und dann eventuell versuchen diese Zeichenkette mit atoi() in ein Integer umzuwandeln. Habt ihr zufällig ein Tutorium dazu gemacht?
Das Programm soll auch solche Eingabe als falsche erkennen: 3a546, oder s2345 und die Eingabe wiederholen. Ich möchte das in C und nicht C++ lösen.
Bevor ich jetzt mehrere Stunden selbst probiere, wollte ich lieber fragen, ob ihr ein paar Tipps für mich habt oder sogar Lösungsvorschläge. Vielleicht gibt es dafür bereit C-Standardfunktionen?
EDIT:
So sieht meine erste Version aus, die noch nicht alles abfängt:
Sie fängt aaa222, aaaaa ab, aber nicht 2a34.char anz[3];
int anz2;
do{
printf("Anzahl: ");
gets(anz);
}while( (anz2 = atoi(anz)) == 0);