Windows CMD.exe fügt nach Ausführung des Programms eine neue Zeile ein

772
Ryan M

Fügt CMD.exe nach dem Ausführen eines Programms automatisch eine neue Zeile im Terminalfenster hinzu? Mein Programm gibt eine Zeile Text über .NET aus. Console.WriteLine("TEXT");Allerdings sehe ich auch eine leere Zeile, wenn ich es in CMD.exe starte. Warum das?

Es würde so aussehen:

TEXT  C:\> 

Beachten Sie die leere Zeile in der obigen Ausgabe. Mein Programm schreibt jedoch nur eine Zeile.

1
Ich glaube schon. Es trennt es von dem Text, der über Microsoft beim Öffnen von cmd angezeigt wird. Sie könnten es vor C: \> anstatt nach ihren Copyright-Informationen setzen. E2Busy vor 8 Jahren 1

1 Antwort auf die Frage

4
dxiv

Die CMD-Eingabeaufforderung wie z. B. C:\>wird immer am Anfang einer Zeile angezeigt. Damit CMD dies garantieren kann, muss es nach dem Ende eines Konsolenprogramms eine neue Zeile einfügen, da das Programm selbst möglicherweise eine Zeile verlassen hat, die am Ende nicht mit einer neuen Zeile abgeschlossen ist.

Hypothetisch, wenn CMD nach dem Beenden des Programms nicht automatisch eine neue Zeile eingefügt hat und Ihr Code Console.Write("TEXT")anstelle von verwendet wurde WriteLine, wäre die Aufforderung in der Mitte der Zeile angezeigt worden TEXTC:\>.

Nur eine kleine Korrektur - es fügt ** 2 ** Zeilenumbrüche ein. Mit etwas Trickerei können Sie 1 davon unterdrücken, versuchen Sie ` DavidPostill vor 8 Jahren 0
@DavidPostill Soweit ich das beurteilen kann, fügt CMD selbst ** 1 ** Newline ein. Die meisten Programme beenden die Ausgabe mit einer eigenen Zeile, wodurch eine zusätzliche leere Zeile angezeigt wird. Diese Zeile wird jedoch vom Programm selbst geschrieben, nicht von CMD. Wenn Sie beispielsweise eine Konsolen-App ausführen, die nur eine `WriteConsoleW 'ausführt (GetStdHandle (STD_OUTPUT_HANDLE), L" test ", ...)` ohne abschließende Zeilenumbrüche, wird' test 'in einer Zeile angezeigt. Die Aufforderung wird in der nächsten Zeile angezeigt Linie. dxiv vor 8 Jahren 0
OK Fair genug ... DavidPostill vor 8 Jahren 0