c++ - 打印到 Visual Studio 中的输出窗口

标签 c++ visual-studio-2010

我是 C++ 的新手,最近从 Linux 上的 g++ 编译切换到 Visual Studio。我试图编写一个简单的程序来测试这样的东西:

#include <iostream>

void main()
{
    // Things
}

我用的是cout <<显示函数返回的内容,然后我意识到它不能以这种方式打印到 Visual Studio 中的输出窗口。我知道我可以使用 Debug模式,但是 Visual Studio 中有没有办法将输出显示到窗口?我发现的一篇较旧的帖子建议使用 OutputDebugString,但我没有将代码编写为 Win32 应用程序,而且我认为对于简单的 cpp 文件不存在此功能。

还有,请问程序执行时弹出一个黑色窗口,然后立即消失,是什么原因?

最佳答案

OutputDebugString 为胜利。它确实存在。只需包含 windows.h。它在那里。

有多种方法可以有效地将 stderr 和 stdout 连接到管道,并将输出重新链接到 OutputDebugString,但听起来您正在寻找一种简单的方法。写入 stdout(cout 等)的任何内容都将转到控制台窗口,因此在您使用 OutputDebugString 之前,请先检查控制台窗口的输出...

说到控制台窗口...

黑色弹出并立即消失的原因是您的控制台窗口正在打开和关闭,并且您的进程很可能在完成任何实质性操作之前就已完成。在 IDE 的 main() 末尾插入一个断点。然后你可以 Alt + Tab 到它。

顺便说一句:如果您使用 OutputDebugString,它不会对您发送的文本进行 CRLF,因此请将其包含在您的输出文本中。

关于c++ - 打印到 Visual Studio 中的输出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12870145/

相关文章:

c# - "The debugger cannot continue running the process."

c# - 插入查询不起作用

visual-studio-2010 - 在 VS2010 项目中使用 Q_OBJECT 会导致无法解析的外部对象

c# - 从 Visual Studio-2012 降级到 Visual Studio-2010

python - libstdc++ 错误 : 'GLIBCXX_3.4.22' not found

c++ - 如何最好地告诉 CMake 在哪里可以找到 dll

c++ - 指向新元素和新数组的指针之间的区别?

javascript - 命中断点后编辑外部 JavaScript 文件

c++ - 在 C++ 中使用类和枚举

c++ - 使用套接字 send()/recv()(winsock) 回显服务器/客户端消息截断