Microsoft Visual Studio: как сохранить консоль открытой, не читая ввод вручную? - PullRequest
6 голосов
/ 26 мая 2011

Я пишу C ++ с помощью Microsoft Visual Studio 2010 Express, и мне интересно, есть ли способ отобразить вывод команды где-то в IDE вместо окна внешней консоли или, по крайней мере, оставить это окно открытым.

Чтение чего-либо из STDIN будет работать для консольного приложения, но это пример модульного теста, и я не хочу изменять сгенерированную основную функцию. Есть ли другой способ?

Ответы [ 6 ]

7 голосов
/ 26 мая 2011

Ctrl + F5 для быстрого теста. Комбинация клавиш удерживает консоль открытой, пока вы ее не закроете.

2 голосов
/ 26 мая 2011

Я нашел решение, которое не очень элегантно, но, по крайней мере, оно работает.Я использую прибор в моей платформе модульного тестирования (Boost.Test), который выполняет system("pause") в методе разрыва:

struct Global_fixture {
    Global_fixture() {}

    ~Global_fixture()
    {
        system("pause");
    }
};
BOOST_GLOBAL_FIXTURE(Global_fixture)

Я надеюсь, что вы, ребята, сможете найти лучший способ.

1 голос
/ 26 мая 2011

В c ++ вы хотите использовать: OutputDebugString

0 голосов
/ 11 октября 2012

В VC ++ используйте

Console::WriteLine(L"my error text");

Printf не выдаст никакого вывода. Ни один не будет OutputDebugString. Консоль запишет в нижней части вывода результатов теста, поэтому все, что вам нужно сделать, это дважды щелкнуть по тесту в окне «Результаты теста».

0 голосов
/ 26 мая 2011

Если вы запускаете юнит-тесты, вы не отлаживаете, верно? Поэтому используйте «Run withut debugging», и окно консоли останется открытым.

Либо откройте собственную командную строку и запустите исполняемый файл, введя его имя.

0 голосов
/ 26 мая 2011

Я думаю, что Debug.Write (и связанный с ним) должен делать то, что вы ищете. Записывает в окно вывода VS.

...