Windows CMD.exe вставляет новую строку после запуска программы

727
Ryan M

CMD.exe автоматически ставит новую строку в окне терминала после запуска программы? Моя программа выводит одну строку текста через .NET. Console.WriteLine("TEXT");Однако при запуске в CMD.exe я также вижу пустую строку. Это почему?

Это будет выглядеть так:

TEXT  C:\> 

Обратите внимание на пустую строку в приведенном выше выводе. Моя программа пишет только 1 строку.

1
Я думаю так. Он отделяет его от текста, который показывает о Microsoft, когда вы открываете cmd. Они могут поставить его перед C: \>, а не после информации об авторских правах. E2Busy 8 лет назад 1

1 ответ на вопрос

4
dxiv

Приглашение CMD, такое как C:\>всегда, отображается в начале строки. Чтобы CMD мог гарантировать это, он должен вставить новую строку после завершения консольной программы, поскольку сама программа могла оставить строку, не завершенную символом новой строки в конце.

Гипотетически, если CMD ничего не автоматически вставить символ новой строки после завершения программы, и если ваш код используется Console.Write("TEXT")вместо WriteLine, то подскажите бы в конечном итоге отображается в середине строки, как TEXTC:\>.

Просто небольшая поправка - она ​​вставляет ** 2 ** новых строк. С помощью хитрости вы можете подавить 1 из них, попробуйте DavidPostill 8 лет назад 0
@DavidPostill Насколько я могу судить, сама CMD вставляет только ** 1 ** символ новой строки. Большинство программ заканчивают вывод собственной новой строкой, которая приводит к появлению дополнительной пустой строки, но эта новая строка записывается самой программой, а не CMD. Например, при запуске консольного приложения, которое выполняет только `WriteConsoleW (GetStdHandle (STD_OUTPUT_HANDLE), L" test ", ...)` без завершающего перевода строки, в одной строке будет отображаться `test`, а в следующей линия. dxiv 8 лет назад 0
Хорошо, достаточно справедливо ... DavidPostill 8 лет назад 0