C Programmieren, anstatt Zahlen, Buchstaben?
Hallo, ich habe eine Aufgabe zu Programmieren und soweit funktioniert es auch. Als Forderung habe ich "Geben Sie eine Zahl ein". Gebe ich zahlen ein funktioniert das Programm wie gewünscht. gebe ich aber Buchstaben ein wie z.B ein Name solle wieder die Aufforderung "Geben Sie eine Zahl ein" kommen. Wie mache ich das denn?
C Programm
2 Antworten
Du könntest scanf mit dem Format-Zeichen "%d" und break nutzen, um damit eine ganze Zahl (int) zu lesen.
Die Funktion gibt dann die Anzahl der erfolgreich eingelesenen Werte zurück.
Wenn sie 1 zurückgibt, war die Eingabe eine gültige Zahl und wir brechen die Schleife ab. Damit wird der Rest des Programms ausgelöst.
Wenn die Eingabe allerdings ungültig war, ignorieren wir sie, indem wir alle verbleibenden Zeichen bis zum Zeilenumbruch ('\n') aus dem Eingabestrom lesen und die Schleife erneut durchlaufen.
Siehe hier:
#include <stdio.h>
int main() {
int year;
while (1) {
printf("Please enter a year: ");
if (scanf("%d", &year) == 1) {
// Die Eingabe war eine gültige Zahl, also fahren wir mit dem Programm fort
break;
} else {
// Die Eingabe war ungültig, also ignorieren wir sie und geben erneut die Aufforderung aus
while (getchar() != '\n');
}
}
// Hier kommt der Rest des Programms hin, das mit der eingelesenen Zahl year ausgeführt wird
if(year % 400 == 0)
{
printf("Leap year - YES\n");
}
else if(year % 100 == 0 || year % 4 == 0)
{
printf("Leap year - YES\n");
}
else {
printf("Leap year - NO\n");
}
return 0;
}
Naja, eine while True (bzw. evtl. while(1)) Schleife eben mit atio
Hier Mal ein Beispiel in Python
while True:
try:
zahl = int(input('Zahl eingeben: '))
break
except ValueError:
print('Bitte geben Sie nur Ganzzahlen ein!')
Danke für deine Antwort, hat leider nicht ganz geklappt. ich habe jetzt mal mein Programm hinzugefügt. Da geht es nicht um Zahlen sondern um Jahre, im Prinzip aber das selbe. Wäre toll wenn Sie mir dabei helfen könnten.