[英]Printf is not printing anything to output? C++ SDL
我試圖在我的Visual C ++項目中使用“printf”,但它無法正常工作。 使用Lazy Foo的教程,我在我的項目中設置了SDL,但是當我播放它時,printf什么都不做。
#include "SDL.h"
#include <stdio.h>
int main( int argc, char* args[] ) {
printf("Testing");
return 0;
}
輸出如下所示:
The program '[4664] SDL Testing.exe: Native' has exited with code 0 (0x0).
這就是它。 可能有什么不對?
打開項目屬性,轉到linker-> system-> subsystem並將其更改為第三個選項CONSOLE。 應該這樣做
默認情況下,SDL會將stdout重定向到文件stdout.txt
。 您應該在程序的工作目錄中找到它。
在Linker -> System
項目屬性中的Linker -> System
中,檢查子系統是否為"Console (/SUBSYSTEM:CONSOLE)"
。
這會導致在運行程序時啟動單獨的控制台窗口。 如果您當前的入口點不是主要的,那么如果您這樣做,則需要將其更改為。
一切正常,我甚至在屏幕上顯示了一個圖像,但是如果沒有輸出消息我就無法編程
我認為這意味着你有一個可用的窗口,而不是控制台。
如果要將某些內容記錄到輸出窗口,請使用OutputDebugString
:
將字符串發送到調試器以供顯示。
void WINAPI OutputDebugString( __in_opt LPCTSTR lpOutputString );
Header
WinBase.h
(包括Windows.h
)
嘗試定義NO_STDIO_REDIRECT。
#define NO_STDIO_REDIRECT
如果這不起作用請嘗試此鏈接中的解決方案: 如何獲取控制台輸出而不是stdout.txt和stderr.txt? 。
Printf通常需要換行符來更新控制台。 在末尾添加一個'\\ n'字符並重新運行該程序。
您可能沒有看到輸出,因為您在Visual Studio中通過按F5運行程序,並且在程序退出后控制台窗口關閉。
你可以做3件事之一 -
在return語句中放置一個斷點。
在return語句之前放置一個getchar()語句。
按Ctrl + F5而不是F5運行程序。
以上所有操作都會導致控制台窗口保留在屏幕上。
您也可以從命令提示符(cmd.exe)直接運行EXE。
運行/調試程序時,visual studio有一個輸出窗口。 您應該能夠在該窗口中看到輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.