Eingabevalidierung
Teil des Abschnitts Fundamentals der C-Journey von Coddy — Lektion 35 von 63.
Wenn Sie Eingaben von Benutzern entgegennehmen, ist es wichtig zu überprüfen, ob die Eingabe gültig ist, bevor Sie sie in Ihrem Programm verwenden.
Zur Validierung von Ganzzahleingaben können Sie den Rückgabewert von scanf überprüfen:
int number;
int result = scanf("%d", &number);Die scanf-Funktion gibt die Anzahl der erfolgreich gelesenen Elemente zurück:
if (result == 1) {
// Eingabe wurde erfolgreich gelesen
printf("Valid input: %d\n", number);
} else {
// Eingabe war ungültig
printf("Invalid input!\n");
}Für die Bereichsvalidierung verwenden Sie bedingte Anweisungen nach dem Einlesen der Eingabe:
if (number >= 1 && number <= 100) {
printf("Number is within valid range (1-100)\n");
} else {
printf("Number is outside valid range!\n");
}Aufgabe
EinfachSchreiben Sie ein Programm, das eine Ganzzahl vom Benutzer einliest und diese auf zwei Arten validiert:
- Prüfen Sie, ob die Eingabe tatsächlich eine Ganzzahl ist (unter Verwendung des Rückgabewerts von scanf)
- Prüfen Sie, ob die Ganzzahl zwischen 10 und 50 (einschließlich) liegt
Ihr Programm sollte Folgendes ausgeben:
- "Valid input!" wenn die Eingabe eine gültige Ganzzahl zwischen 10 und 50 ist.
- "Invalid input type!" wenn die Eingabe keine Ganzzahl ist.
- "Out of range!" wenn die Eingabe eine Ganzzahl ist, aber nicht zwischen 10 und 50 liegt.
Spickzettel
Um eine Ganzzahleingabe zu validieren, überprüfen Sie den Rückgabewert von scanf:
int number;
int result = scanf("%d", &number);
if (result == 1) {
// Input was successfully read
printf("Valid input: %d\n", number);
} else {
// Input was invalid
printf("Invalid input!\n");
}Verwenden Sie für die Bereichsvalidierung bedingte Anweisungen:
if (number >= 1 && number <= 100) {
printf("Number is within valid range (1-100)\n");
} else {
printf("Number is outside valid range!\n");
}Probier es selbst
#include <stdio.h>
int main() {
// Schreibe deinen Code hier
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
2Variablen
DatentypenIntegerFloat - DoubleZeichenBooleansKonstantenprintf GrundlagenBenennungsregeln für VariablenType Casting Teil 1Type Casting Teil 2Wiederholungs-Challenge5Eingabe & Ausgabe
Formatbezeichnerscanf-GrundlagenWiederholungs-Challenge #1EingabevalidierungWiederholungs-Challenge #23Operatoren
Arithmetische OperatorenModulo-OperatorInkrement/DekrementZuweisungsoperatorenRelationale OperatorenLogische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Wiederholungs-Challenge