打印到Visual Studio中的输出窗口
Printing to output window in Visual Studio
我是C++新手,最近从Linux上的g++编译切换到Visual Studio。我试图编写一个简单的程序来测试一些这样的程序:
#include <iostream>
void main()
{
// Things
}
我正在使用cout <<
来显示函数返回的内容,然后我意识到以这种方式打印到 Visual Studio 中的输出窗口不起作用。我知道我可以使用调试模式,但是在Visual Studio中有没有办法将输出显示到窗口?我发现的一篇较旧的帖子建议使用 OutputDebugString,但我没有将代码编写为 Win32 应用程序,我认为简单的 cpp 文件不存在此功能。
另外,是否有原因可以在执行程序时弹出黑色窗口,然后立即消失?
OutputDebugString for the win。它确实存在。只需包括Windows.h。它就在那里。
有一些方法可以有效地将stderr和stdout连接到管道,并让你将输出树脂到OutputDebugString,但听起来你正在寻找一种简单的方法。任何写入 stdout 的内容(cout 等)都会转到控制台窗口,所以在你去之前 OutputDebugString 坚果首先检查你的控制台窗口的输出......
说到控制台窗口...
黑色弹出并立即消失的原因是您的控制台窗口正在打开和关闭,并且您的过程很可能在完成任何实质性操作之前就已完成。在 IDE 中 main() 的末尾塞一个断点。然后,您可以 Alt + Tab 键到它。
顺便说一句:如果你使用OutputDebugString,它不会CRLF你发送的文本,所以把它包含在你的输出文本中。
我编写的一个可移植的TRACE宏。
在Windows上,它基于WhozCraig的答案中所示的OutputDebugString
。
#ifdef ENABLE_TRACE
# ifdef _MSC_VER
# include <windows.h>
# include <sstream>
# define TRACE(x)
do { std::stringstream s; s << (x);
OutputDebugString(s.str().c_str());
} while(0)
# else
# include <iostream>
# define TRACE(x) std::clog << (x)
# endif // or std::cerr << (x) << std::flush
#else
# define TRACE(x)
#endif
例:
#define ENABLE_TRACE // Can depend on _DEBUG or NDEBUG macros
#include "my_above_trace_header.h"
int main (void)
{
int v1 = 123;
double v2 = 456.789;
TRACE ("main() v1="<< v1 <<" v2="<< v2 <<'n');
}
从单元测试用例中写入输出窗口,则可以使用以下方法:
#include "CppUnitTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
TEST_METHOD(testingsomething)
{
Logger::WriteMessage("Hello output window");
}
- 为什么输出窗口上没有显示输出?
- 输出窗口中消息的可视化工作室源
- 输出 c++ 窗口 wstring 日志在终端中正确
- C++/Visual Studio-如何输出到测试输出窗口
- 如何将日志记录写入Visual Studio输出窗口?
- 调整项目在Visual Studio的输出窗口中构建报告
- 使用分叉时的输出窗口
- 制作垫子类型对象的数组.输出窗口显示同一帧
- 以编程方式清除Visual Studio输出窗口
- 打印到Visual Studio中的输出窗口
- 全屏获取c ++程序的输出.它是控制台输出窗口的目标代码
- Xcode 6 在我按下输出窗口后意外退出
- 将命令提示符输出重定向到 Visual Studio 2012 中的输出窗口
- VS2013-输出窗口不显示std::cout
- 输出窗口显示三个图像,而不是一个
- 在Visual C++IDE的输出窗口上打印输出
- Visual studio 2008输出窗口停止工作
- 是否有一种简单的方法可以用可互操作的代码在CLI中清理屏幕/保持输出窗口,避免conio.h和ncurses.h
- 额外的单词出现在visualc++输出窗口
- 在Visual Studio中使用本地Windows调试器运行第一个程序。输出窗口显示大量"Cannot find or open the PDB file"