Hallo Freunde. Aus reinem Interesse überlege ich, meinen CMD-Minesweeper-Klon in C(ohne++) zu schreiben, um die Sprache ein bisschen kennenzulernen. Und da habe ich direkt eine Detailfrage:
Ich stellte fest, dass ich in C ohne mein geliebtes Exception-Handling auskommen muss. Auf Arbeit sagte mir jemand in der Kaffee-Pause, dass man als Ersatz Prüfroutinen schreiben solle.
Und da hätte ich gleich mal ein Fallbeispiel:
Diese Methode holt sich vom Nutzer eine Integer-Eingabe und ist erst zufrieden, wenn der Nutzer auch wirklich ein gültiger Integer-Literal eingibt.
In C hätte ich jetzt folgende Idee:
Ich würde eine Prüfroutine schreiben, die prüft, ob alle Zeichen der vom Nutzer eingegebenen Zeichenfolge im ASCII-Code 0 bis 9 sind. Wenn die Prüfroutine irgendwann wahr zurück gibt, wird mit atoi() der Eingabe-String in eine Zahl umgewandelt.
Ist das sinnig, oder gibt es für solche Probleme schon bessere Lösungen / Konventionen?
Ich stellte fest, dass ich in C ohne mein geliebtes Exception-Handling auskommen muss. Auf Arbeit sagte mir jemand in der Kaffee-Pause, dass man als Ersatz Prüfroutinen schreiben solle.
Und da hätte ich gleich mal ein Fallbeispiel:
Code:
public static int saveIntInput(String prompt) {
while (true) {
try {
System.out.print(prompt);
return Integer.valueOf(scanner.nextLine());
} catch (NumberFormatException e) {
System.out.println("Not a valid number.");
}
}
}
Diese Methode holt sich vom Nutzer eine Integer-Eingabe und ist erst zufrieden, wenn der Nutzer auch wirklich ein gültiger Integer-Literal eingibt.
In C hätte ich jetzt folgende Idee:
Ich würde eine Prüfroutine schreiben, die prüft, ob alle Zeichen der vom Nutzer eingegebenen Zeichenfolge im ASCII-Code 0 bis 9 sind. Wenn die Prüfroutine irgendwann wahr zurück gibt, wird mit atoi() der Eingabe-String in eine Zahl umgewandelt.
Ist das sinnig, oder gibt es für solche Probleme schon bessere Lösungen / Konventionen?