簡體   English   中英

Printf沒有打印任何東西輸出? C ++ SDL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM