visualc&x2B+;把控制台 我在VisualC++中创建了一个空项目,但是现在我需要控制台来显示调试输出。

visualc&x2B+;把控制台 我在VisualC++中创建了一个空项目,但是现在我需要控制台来显示调试输出。,c++,visual-c++,console,C++,Visual C++,Console,如何在不重新创建项目或在VS输出窗口中显示输出的情况下启用控制台?您可以随时调用代码为应用程序创建控制台,并将其附加到流程。将移除控制台,并将进程从控制台上分离 如果希望所有标准输出流数据都进入控制台,还需要使用SetStdHandle适当地重定向输出。下面是一个示例,包括分配控制台和重定向输出。您可以使用OutputDebugString写入vs输出窗口 以下是一些代码,您可以插入这些代码以在WinMain中启动的GUI windows应用程序中获得控制台窗口。还有其他方法可以实现这一点,但这

如何在不重新创建项目或在VS输出窗口中显示输出的情况下启用控制台?

您可以随时调用代码为应用程序创建控制台,并将其附加到流程。将移除控制台,并将进程从控制台上分离


如果希望所有标准输出流数据都进入控制台,还需要使用SetStdHandle适当地重定向输出。下面是一个示例,包括分配控制台和重定向输出。

您可以使用OutputDebugString写入vs输出窗口

以下是一些代码,您可以插入这些代码以在WinMain中启动的GUI windows应用程序中获得控制台窗口。还有其他方法可以实现这一点,但这是我发现的最紧凑的代码片段

//Alloc Console
//print some stuff to the console
//make sure to include #include "stdio.h"
//note, you must use the #include <iostream>/ using namespace std
//to use the iostream... #incldue "iostream.h" didn't seem to work
//in my VC 6
AllocConsole();
freopen("conin$","r",stdin);
freopen("conout$","w",stdout);
freopen("conout$","w",stderr);
printf("Debugging Window:\n");
//Alloc控制台
//在控制台上打印一些东西
//确保包括#包括“stdio.h”
//注意,您必须使用#include/using名称空间std
//要使用iostream#incldue“iostream.h”似乎不起作用
//在我的VC 6中
allocsole();
freopen(“conin$”,“r”,标准);
freopen(“conout$”、“w”、stdout);
freopen(“conout$”,“w”,标准);
printf(“调试窗口:\n”);

当我在过去这样做的时候,我必须跳出一些障碍,让stdout真正进入控制台窗口。“默认情况下不会。”dash tom bang:非常正确。默认情况下,控制台不会重定向所有标准输出。我在一个页面上添加了一个链接,显示了工作代码,演示了所需的一切。显示了一个控制台,但我输入到std::cout中的数据没有显示在那里。是的,这有点烦人,但它是一组有用的书签代码。我发现我已经做了很多次了…@Attic我知道这条线很老了,但是看看下面的答案。“它真的很漂亮,很整洁。”兰伍德谢谢你lot@RyanWoodard我还想要一个更深入的解释。简短而甜蜜。非常感谢。