Eingaben lesen und prüfen
Eingabeoperationen können fehlschlagen und ihr Ergebnis muss geprüft werden.
Was ist Eingaben lesen und prüfen?
Eingabeoperationen können fehlschlagen und ihr Ergebnis muss geprüft werden.
Lies Benutzereingaben und lehne ungültige Werte ab.
Wichtige Punkte
- Aktiviere Compiler-Warnungen und behebe sie vollständig.
- Kenne Typ und Lebensdauer jedes Werts.
- Prüfe Eingaben und Array-Grenzen explizit.
Codebeispiele in C und C++
main.c
#include <stdio.h>
int main(void) {
int age;
printf("Age: ");
if (scanf("%d", &age) != 1 || age < 0) {
puts("Invalid age");
return 1;
}
printf("Next year: %d\n", age + 1);
return 0;
}
Age: 20
Next year: 21
main.cpp
#include <iostream>
int main() {
int age;
std::cout << "Age: ";
if (!(std::cin >> age) || age < 0) {
std::cerr << "Invalid age\n";
return 1;
}
std::cout << "Next year: " << age + 1 << '\n';
}
Age: 20
Next year: 21
Vergleich zwischen C und C++
scanf liefert die Zahl erfolgreicher Konvertierungen; std::cin wechselt bei einem unpassenden Wert in den Fehlerzustand.
C
C stellt kleine prozedurale APIs und Repräsentationsdetails offen dar.
C++
C++ behält das Low-Level-Modell und ergänzt sicherere Bibliothekstypen.
Übungsaufgaben
Führe beide Versionen aus und untersuche die unterschiedlichen Garantien.
- Füge ungültige und Grenzwerte hinzu.
- Kompiliere mit -Wall -Wextra -Wpedantic.
- Teile Deklaration und Implementierung auf.