Есть ли способ поймать stderr и stdout в Visual Studio?
Есть ли способ поймать stdout и stderr в Visual Studio? Например, когда я использую
cout <<"Hello world!"<< endl;
Появится черное окно и исчезнет. Это так быстро, что я не вижу этого. В среде IDE есть раздел вывода, но он позволяет мне выбирать вывод отображения из сборки и что-то еще, но без выбора stdout.
Обманное решение может быть вызвано
system("pause");
но это звучит не так. Я искал в опции, но я не могу найти элемент.
У кого-нибудь есть идея? Благодарю. Я просто начинаю использовать VS, а раньше я на Linux.
Ответы
Ответ 1
Вместо того, чтобы использовать команду "Начать отладку", если вы хотите проверить вывод, используйте "Начать без отладки". В общем, как я справляюсь с этим. Окно командной строки останется в силе, пока вы его не закроете. Если произошел сбой или что-то еще, вы всегда можете подключить Visual Studio к процессу или просто запустить его с помощью "Начать отладку".
Ответ 2
Перейдите в "Свойства проекта" → "Линкер" → "Система" → "Изменить подсистему" на "Консоль".
Ответ 3
Не пытаясь перенаправить потоки stdin/err, есть несколько альтернатив, которые вы можете попробовать:
- Откройте окно командной строки и cd в каталог вашего исполняемого файла
будет создан, а затем запустит его оттуда.
- Возможно, попробуйте использовать что-то вроде std:: cin.get(); или std:: cin.ignore(std:: cin.rdbuf() → in_avail() + 1); вместо системы ( "пауза" ).
- Отобразить вывод в отладчике visual studio через OutputDebugString