Microsoft Visual Studio:如何在不手动读取输入的情况下保持控制台打开?
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
Ctrl + F5
用于快速测试。
该组合键使控制台保持打开状态,直到您将其关闭。
Ctrl + F5
for quick test.
The key combination keeps the console open until you close it.
我找到了一个不太优雅的解决方案,但至少它有效。我在单元测试框架(Boost.Test)中使用了一个固定装置,它在拆卸方法中执行
system("pause")
:我希望你们能找到更好的方法。
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:I hope you guys can find a better way.
在 C++ 中,您要使用:
OutputDebugString
In c++ you want to use :
OutputDebugString
我认为 Debug.Write (及相关)应该可以满足您的需求。写入 VS 输出窗口。
I think Debug.Write (and related) should do what you're looking for. Writes to the VS output window.
如果您正在运行单元测试,那么您就不是在调试,对吧?因此,使用“运行而不调试”,控制台窗口将保持打开状态。
或者,打开您自己的命令提示符并通过键入其名称来启动 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.
在 VC++ 中使用
Printf 不会产生任何输出。 OutputDebugString 也不会。控制台将在测试结果输出的底部写入,因此您所要做的就是在“测试结果”窗口中双击该测试。
In VC++ use
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.