Kleines "Labyrinth-Spiel", freu mich über jede Kritik!
-
Es ist einfach Zweckentfremdung.
system
ist dazu da, explizit externe Programme zu starten. Das Löschen eines Bildschirms ist aber nichts, was rein logisch dem Aufruf eines externen Programms gleichkommen sollte, sondern das ist nur eine Funktionalität des eigenen Programms. Ja, ja, rein praktisch mag es jetzt vielleicht noch egal sein, aber ich sage: "Wehret den Anfängen!" Heute nimmt mansystem("cls")
als Notlösung, morgen hält man es nicht für nötig, einen oft vorkommenen Wert als Konstante zu deklarieren, "da er sich ja sowieso nicht ändert" und man die Zahl auch direkt hinschreiben kann. Und übermorgen? Da friemelt man sich ein so beschissenes Konstrukt zusammen, das eine tickende Zeitbombe ist, weil man nie gelernt hat, was sauberes Programmieren bedeutet.
-
Rufst Du ping mit system auf oder machste rawsockets per hand? Und touch? Und ftp?
-
Sieh das nicht so engstirnig, NES-Spieler! Um Spiele-Logik zu verstehen und um zu setzen, muss man nicht gleich wie ein 1337-h4xX0r alles aus der Win32-API rauskratzen. Techn. Details sind hier erst mal auf Rang 2.
-
volkard schrieb:
Rufst Du ping mit system auf oder machste rawsockets per hand? Und touch? Und ftp?
Das kommt drauf an, was das Programm aussagen will. Wenn es explizit aussagen soll: "Achtung, ich starte jetzt ein externes Programm. Das gibt es auch losgelöst, das ist also nicht Teil meines eigenen Binärcodes", dann würde ich
system
benutzen. Wenn das Programm dem Benutzer sagen soll: "So, das, was jetzt kommt, ist ein Feature von mir", dann benutze ich dazu richtige Funktionen, die für diese Aufgabe gedacht sind.Ad aCTa schrieb:
Sieh das nicht so engstirnig, NES-Spieler! Um Spiele-Logik zu verstehen und um zu setzen, muss man nicht gleich wie ein 1337-h4xX0r alles aus der Win32-API rauskratzen.
Wie bitte? Was hat denn eher etwas von einem 1337-h4xX0r? Die Funktionen zu nehmen, die explizit für diese Aufgabe gedacht sind (und dabei noch was über richtige Programmierung zu lernen)? Oder zu sagen: "Hab ich Tricky-Tricky gemacht und den Shell-Befehl genommen."
-
NES-Spieler schrieb:
Wenn es explizit aussagen soll: "Achtung, ich starte jetzt ein externes Programm. Das gibt es auch losgelöst, das ist also nicht Teil meines eigenen Binärcodes", dann würde ich
system
benutzen.Ich schätze, ein system("cls") unter Windows ruft die entsprechenden WinApi Funktionen auf. Das Parsen von "cls" und der system Aufruf dürfte wohl die eine oder andere Mikrosekunde mehr benötigen, als wenn man die WinApi Funktionen direkt aufruft. Hier, in diesem Fall ( und schätzungsweise in 99% der übrigen Fälle ), kann man m.M.n. mit ruhigem Gewissen, um deine Wortwahl zu erweitern, drauf schei ...