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

问题描述

| 我正在用Microsoft Visual Studio 2010 Express编写一些C ++,我想知道是否有一种方法可以在IDE中的某个地方而不是外部控制台窗口中显示命令输出,或者至少保持该窗口处于打开状态。 从STDIN读取内容对于控制台应用程序是可行的,但这是一个单元测试用例,我不想修改生成的main函数。还有另一种方法吗?     

解决方法

Ctrl + F5 快速测试。 组合键可使控制台保持打开状态,直到您将其关闭为止。     ,我找到了一个不是很优雅的解决方案,但至少可以奏效。我在单元测试框架(Boost.Test)中使用固定装置,该装置在拆卸方法中的作用为
system(\"pause\")
struct Global_fixture {
    Global_fixture() {}

    ~Global_fixture()
    {
        system(\"pause\");
    }
};
BOOST_GLOBAL_FIXTURE(Global_fixture)
我希望你们能找到更好的方法。     ,在c ++中,您想使用:
OutputDebugString
    ,我认为Debug.Write(及相关功能)应该可以满足您的需求。写入VS输出窗口。     ,如果您正在运行单元测试,那么您不是在调试,对吗?因此,使用“ Run withut debugging”,控制台窗口将保持打开状态。 或者,打开您自己的命令提示符并通过键入其名称启动exe。     ,在VC ++中使用
Console::WriteLine(L\"my error text\");
Printf将不会产生任何输出。 OutputDebugString也不会。控制台将在测试结果输出的底部写入内容,因此您只需在\“ Test Results \”窗口中双击测试即可。