Microsoft Visual Studio:如何在不手动读取输入的情况下保持控制台打开

Microsoft Visual Studio: How to keep the console open without manually reading input?

本文关键字:情况下 输入 控制台 读取 Studio Visual Microsoft      更新时间:2023-10-16

我正在用Microsoft Visual Studio 2010学习版编写一些C++,我想知道是否有一种方法可以在IDE中的某个位置显示命令输出,而不是外部控制台窗口,或者至少保持该窗口打开。

从STDIN中读取一些内容对于控制台应用程序来说是可行的,但这是一个单元测试用例,我不想修改生成的主函数。还有别的办法吗?

Ctrl+F5用于快速测试。组合键保持控制台打开,直到您关闭它。

我发现了一个解决方案,虽然不是很优雅,但至少它能工作。我在我的单元测试框架(Boost.Test)中使用了一个fixture,它在分解方法中执行system("pause")

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

我希望你们能找到更好的方法。

在c++中要使用:OutputDebugString

我认为是调试。写作(和相关)应该做你想要做的事情。写入VS输出窗口。

如果您正在运行单元测试,那么您不是在调试,对吗?因此,使用"运行而不调试",控制台窗口将保持打开状态。

或者,打开自己的命令提示符,然后键入exe的名称来启动它。

在VC++中使用

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

Printf不会产生任何输出。两者都不会OutputDebugString。控制台将在测试结果输出的底部进行写入,因此您所要做的就是双击"测试结果"窗口中的测试。