FILE* fpFile;
AllocConsole(); // or AttachConsole(ATTACH_PARENT_PROCESS); // if parent has one
freopen_s(&fpFile,"CONOUT$", "w", stdout); // redirect stdout to console
freopen_s(&fpFile,"CONOUT$", "w", stderr); // redirect stderr to console
freopen_s(&fpFile,"CONIN$", "r", stdin); // redirect stdin to console
8条答案
按热度按时间yqlxgs2m1#
编辑2021,Visual Studio 2019
要将调试消息写入“输出”窗口,请使用
debugapi.h
中的OutputDebugStringA(包括windows. h)测试c
在Visual Studio 2019上进行了测试,调试/ x64。
或者使用我的header文件。
pgpifvop2#
你需要一个控制台窗口,到目前为止,最简单的方法就是修改链接器选项:项目+属性,链接器,系统,子系统=控制台。添加main()方法:
ftf50wuq3#
我知道我过去使用AllocConsole函数做过这件事,但我也记得这比我预期的要棘手一些。
在AllocConsole上进行快速的Google搜索,得到了一个似乎相关的Windows Developer Journal article。从那里,下面的内容似乎与我回忆的内容相似,尽管它很模糊。
ddhy6vgd4#
另一种不需要改变现有printf的方法是打印到VS输出窗口,如下所示:
lqfhib0f5#
谢谢你的回答,这对我帮助很大。
我需要一个更大的回滚缓冲区,所以在看了API functions之后做了一些补充。在这里分享,以防它对其他人有帮助:
这会将回滚(屏幕缓冲区)高度增加到9999行。
在Windows XP和Windows 7上进行了测试。
p1iqtdky6#
Here is a page that will tell you how to do this, including sample code.
必须使用AllocConsole()创建控制台窗口,然后将C标准文件句柄与新控制台窗口的HANDLE关联。
cygmwpex7#
对于MinGW,使用“_A_SYSTEM”代替“_O_TEXT”。因此移植的Quintin Willison答案如下:
ct3nt3jp8#
下面是一个工作代码