038
16.05.2005, 23:11 Uhr
0xdeadbeef
Gott (Operator)
|
Zitat von ao: |
Warum soll das zweite besser sein als das erste?
Ein system-Aufruf nur um auf einen Tastendruck zu warten ist doch Overkill. Und ein Conditional, das dafür sorgt, dass der Code sich unter Windows anders benimmt als unter anderen Betriebssystemen - im Sinne von portabler Programmierung nicht gerade empfehlenswert.
|
Ich hab bisher noch niemand gesehen, der dieses spezielle Problem unter Linux/UNIX/irgendeinem anderen OS als Windows hatte. Dementsprechend macht es an der Stelle Sinn, dass sich das Programm unter Windows anders verhalten soll. Ansonsten macht system("pause"); genau das, was man will, während die Frickellösungen mit cin.get() und getchar() und getch() versagen, sobald Reste im Stream sind. Und mal realistisch gesehen werden Anfänger, deren IDE keine vernünftige Konsoleneinbindung hat und die nicht verstehen, warum die Konsole gleich wieder verschwindet, nicht genug von I/O-Streaming verstehen, um solche Fehler zu vermeiden. Deswegen ist system("pause"), so sehr ich es in richtigem Code auch hasse, an dieser Stelle sinnvoller als cin.get(), getchar() und vor allem als getch().
Aber, wie ich schon sagte, die eigentlich saubere Lösung ist, das nicht in das eigentliche Programm reinzuschreiben, weil es da nicht hingehört. Stattdessen halt ne batch-Datei, bzw, wenn das wirklich mal wichtig werden sollte, ein shellskript. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |