2016-07-21 9 views
0

Ich habe viele Posts darüber gelesen, wie man Eingabeaufforderungen offen hält und die meisten Antworten, die ich gefunden habe, waren etwas wie SYSTEM ("PAUSE") oder getchar(), Console.ReadLine(), (Abhängig von C# oder C++). Jetzt eine Sache, die ich frage mich, ist es in Ordnung, wenn ich am Ende des HauptIst dies eine sichere Methode, die Eingabeaufforderung offen zu halten?

habe
while(true) { Console.ReadLine(); } 

ich es einfach nicht will, zu schließen, wenn jemand ein Zeichen oder etwas drückt. Ist das ein sicherer Weg oder nicht?

+3

Was meinst du mit "sicher"? – ArchbishopOfBanterbury

+0

Wird dies möglicherweise in einigen anderen Umgebungen zu Problemen führen? Sagen wir vielleicht eingebettete Systeme? Und auch, nur neugierig, warum gibt es keine Möglichkeit, es vom Verschwinden zu deaktivieren? –

+0

Warum möchten Sie nicht, dass das Terminal geschlossen wird, wenn das Programm fertig ist, wenn das Terminal nur geöffnet wurde, um das Programm auszuführen? Wenn Sie möchten, dass es bestehen bleibt, warum öffnen Sie nicht einfach a) das Terminal. 2) starte das Programm von der Kommandozeile aus und warte, bis es beendet ist 3) starre so lange wie du willst auf dein persistentes Terminal. ?? Programme * können * auf andere Arten als nur "Clickity Klick auf sie" ausgeführt werden Sie wissen ... –

Antwort

2

Wenn Sie eine Endlosschleife verwenden, sollten Sie wahrscheinlich eine Escape-Luke haben. Zum Beispiel

while(true) { 
string input = Console.ReadLine(); 

if (input == "quit") 
break; 
} 
+0

Dachte nie, eine Notausstiegsluke scheint eine großartige Lösung zu sein. Gibt es auch einen Grund warum brechen? wird über etwas wie Return -1 verwendet? –

+0

die Pause; verlässt die Endlosschleife und führt den Code aus, der nach der Schleife existiert. Wenn nach der Schleife kein Code mehr vorhanden ist, wird er einfach beendet. In diesem Fall geben Sie -1 zurück; wird auf die gleiche Weise funktionieren – Daniel

+0

Danke tolle Erklärung, wirklich zu schätzen! –