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

发布于 2024-11-09 16:52:56 字数 185 浏览 6 评论 0原文

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

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

I'm writing some C++ with Microsoft Visual Studio 2010 Express, and I'm wondering if there is a way to display command output somewhere in the IDE instead of an external console window, or at least keep that window open.

Reading something from STDIN would work for a console application, but this is a unit test case and I don't want to modify the generated main function. Is there another way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

久伴你 2024-11-16 16:52:56

Ctrl + F5
用于快速测试。
该组合键使控制台保持打开状态,直到您将其关闭。

Ctrl + F5
for quick test.
The key combination keeps the console open until you close it.

美胚控场 2024-11-16 16:52:56

我找到了一个不太优雅的解决方案,但至少它有效。我在单元测试框架(Boost.Test)中使用了一个固定装置,它在拆卸方法中执行system("pause")

struct Global_fixture {
    Global_fixture() {}

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

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

I've found a solution that is not really elegant, but at least it works. I'm using a fixture in my unit testing framework (Boost.Test) which does system("pause") in the tear down method:

struct Global_fixture {
    Global_fixture() {}

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

I hope you guys can find a better way.

梦晓ヶ微光ヅ倾城 2024-11-16 16:52:56

在 C++ 中,您要使用:OutputDebugString

In c++ you want to use : OutputDebugString

叹沉浮 2024-11-16 16:52:56

我认为 Debug.Write (及相关)应该可以满足您的需求。写入 VS 输出窗口。

I think Debug.Write (and related) should do what you're looking for. Writes to the VS output window.

我的影子我的梦 2024-11-16 16:52:56

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

或者,打开您自己的命令提示符并通过键入其名称来启动 exe。

If you're running unit tests, you're not debugging, right? So use "Run withut debugging" and the console window will stay open.

Alternatively, open a command prompt of your own and launch the exe by typing its name.

旧城烟雨 2024-11-16 16:52:56

在 VC++ 中使用

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

Printf 不会产生任何输出。 OutputDebugString 也不会。控制台将在测试结果输出的底部写入,因此您所要做的就是在“测试结果”窗口中双击该测试。

In VC++ use

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

Printf won't produce any output. Neither will OutputDebugString. The Console will write at the bottom of the test results output, so all you have to do is double-click on the test in the "Test Results" window.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文