Stellen Sie sicher, dass ZoneAlarm meine C-Programme nicht mehr pausiert, wenn Sie sie ausführen

431
rMaero

Ich verwende Dev-C ++, um einige Konsolen-Apps zum Lernen zu entwickeln. Wenn mein Programm versucht zu laufen

system("PAUSE"); 

SA stoppt es und bittet mich, es zuzulassen oder abzulehnen. Ich aktiviere das Kästchen "immer", aber es scheint, dass jedes Mal, wenn ich es kompiliere, es eine neue Exe-Datei generiert, so dass ZA jedes Mal, wenn ich es ausführe, erscheint.

Natürlich ist es die einfachste Lösung, sie zu deaktivieren oder damit umzugehen :-P, aber ich bin nicht beidem von beidem. Irgendwelche Vorschläge? Danke im Voraus!

0
Verwenden Sie nicht "system (" pause ")", sondern "getchar ()". Oder besser, verwenden Sie keine "Drücken Sie eine Taste ..." - Befehle: Führen Sie Ihr Programm von einer richtigen CMD.EXE-Box aus. Renan vor 12 Jahren 0
Der Grund, warum ZA sich nicht an Ihre Auswahl erinnern kann, liegt darin, dass Sie die Anwendungssignatur bei jedem Kompilieren ändern. Mein Vorschlag sollte eine Erwartung für den Ordner generieren, in dem die EXE-Datei ausgeführt wird. Ramhound vor 12 Jahren 0
@ Ramhound Das war es, was ich mit meiner Frage anstrebte! Wissen Sie, wie man dat macht? rMaero vor 12 Jahren 0

1 Antwort auf die Frage

2
David Schwartz

System loswerden ("PAUSE") . Wenn Sie auf einen Tastendruck warten möchten, verwenden Sie dazu sinnvollen C- oder C ++ - Code. Starten Sie keinen Prozess.

Konsolenanwendungen sollten auch niemals auf einen Tastendruck am Ende ihres Laufs warten. Dies macht sie unter anderem in Pipelines unbrauchbar. Wenn Sie die Ausgabe einer Konsolenanwendung nach deren Ausführung benötigen, sollten Sie sie von einer Konsole aus ausführen.

Es liegt nicht in der Verantwortung des Programms, sicherzustellen, dass es in einer gesunden Umgebung ausgeführt wird. Wenn Sie von einer temporären Konsole aus ausgeführt werden, ist die Ausgabe so, wie sie sein sollte. Jemand, der das nicht wollte, konnte es nicht von einer temporären Konsole ausführen.

Dies ärgert Menschen, die wissen, was sie tun (stellen Sie sich vor, wenn Sie die Programmausgabe beispielsweise in eine Datei umleiten), und erleichtern Sie Menschen, die nicht wissen, dass sie andere Dinge verlangen, als sie wollen. Fortsetzung des Zyklus von Programmierern, die ihnen das geben, wonach sie nicht gefragt haben.