Как сигнализировать о конце файла в окне консоли Linux Visual Studio

#linux #visual-studio #windows-subsystem-for-linux

#linux #visual-studio #windows-subsystem-for-linux

Вопрос:

В VS2019 мы можем создавать консольные приложения Linux. В отладчике Visual Studio они выполняются с использованием окна консоли Linux для стандартного ввода и стандартного вывода.

В «реальной» оболочке Linux нажатие клавиши Ctrl-D указывает на конец ввода в консольное приложение. Ctrl-D не работает в окне консоли Linux. (Visual Studio использует Ctrl-D в качестве первой клавиши аккорда — по крайней мере, с использованием привязок клавиш по умолчанию)

Какое нажатие клавиши мне нужно?

ПРИМЕЧАНИЕ — я НЕ прошу здесь Ctrl-Z. Это будет указывать на конец ввода в консольную программу Windows, запущенную в окне командной строки.

Комментарии:

1. Терминал / консоль — это отдельное приложение, которое передает пользовательский ввод в консольные приложения. Это не имеет ничего общего с Visual Studio. Какой терминал вы используете? Нет Linux Console Window , есть старая консоль или новый терминал Windows

2. Спасибо @PanagiotisKanavos Я следовал инструкциям в этом блоге. ( devblogs.microsoft.com/cppblog / … ) немного скорректировано, потому что я думаю, что моя версия VS2019 немного позже, чем когда был написан блог. Однако, как показано на скриншотах, в Visual Studio есть «Окно консоли Linux». Он появляется при запуске в отладчике. Я могу ввести там консольный ввод, и он поступает через стандартный интерфейс в мою программу. там отображается стандартный вывод. Я просто не знаю, как имитировать EOF в нем.

3. Ctrl D это сочетание клавиш в Visual Studio. Вы пробовали запускать свое приложение вне Visual Studio?

4. Запуск вне Visual Studio дает стандартное поведение Linux, где Ctrl-D == EOF. Это работает как в «реальном» Linux, так и в WSL. Это не решение. Я хочу запустить программу в отладчике VS; и я хочу знать, как отправить EOF в стандартный интерфейс программы.