2016-04-28 2 views
0

Я практикуя написания рекурсивных функций с помощью Visual Studio 2015 на Windows, 7.Show или захватить полный вывод программы с помощью cmd.exe

Я использую cout отслеживать ход моего кода, но он показывает слишком много результатов и хотя я останавливаю программу, я не вижу начального результата ... Я могу видеть только результат из середины.

Как я могу увидеть полный выход программы?

+0

Если вы просто хотите проверить правильность, используйте встроенный отладчик. F10. – ZDF

+3

Почему вы просто не перенаправляете вывод в файл, который затем можно открыть в текстовом редакторе? –

ответ

0

Я не уверен, что понял вашу проблему, может быть, вы должны написать вывод в файле вместо стандартного вывода? Тогда вы увидите все ваши результаты

0

Запуск приложения из командной строки и перенаправить вывод в файл:

yourapp.exe > yourapp.log 
1

Проблема заключается в том, что cmd.exe (винд commad подскажет) имеет буфер фиксированного размера для отображение вывода. Если ваша программа записывает много результатов, будут отображаться только последние N строк, где N - размер буфера.

Вы можете избежать этой проблемы несколько способов:

  1. записи в файл, вместо того, чтобы std::cout. Весь ваш вывод будет записан в файл, который вы можете прочитать в текстовом редакторе по вашему выбору.

  2. Перенаправить стандартный вывод в файл. Запустите программу как my_prog.exe > output.log, и выход будет перенаправлен на output.log.

  3. Pipe ваш выход в команду more, чтобы показать один экран одновременно: my_prog.exe | more

  4. Увеличение размера буфера cmd.exe. Если вы щелкните правой кнопкой мыши по строке заголовка окна команд, вы можете выбрать опцию меню Свойства. На вкладке Layout вы увидите раздел под названием Размер буфера экрана. Измените Высота на большее значение, и вы сможете захватить это множество линий вывода. Обратите внимание, что это несколько ненадежно, так как вы часто не знаете, как выполнить свою программу, сколько строк она выведет. Один из других подходов, использующих файлы, часто является лучшим решением.

Обратите внимание, что это не проблема с вашей программой на С ++. Весьма разумно иметь возможность производить большое количество выходных данных в стандартном потоке вывода. Лучшие решения - это те, которые перенаправляют или транслируют вывод в файл. Эти операции доступны на большинстве разумных платформ (и Windows), и делают именно то, что вам нужно, без необходимости менять вашу программу для записи в файл.

Смежные вопросы