1. 程式人生 > >在VS2010中使用printf列印資訊

在VS2010中使用printf列印資訊

由於本人在編寫C/C++程式碼是習慣於使用printf函式列印資訊,但在使用VC++2010編寫程式碼除錯時,printf列印的語句無法顯示,在網上查了些方法,如果列印資訊到“輸出”視窗可以使用OutputDebugString函式,但只能輸出字串,無法使用我們常用的格式化輸出,所以就封裝了一個列印函式,函式程式碼如下:

#define PRINT_BUF_SIZE 1024

extern "C"int dprintf(constchar *format,...)

{

         charbuf[PRINT_BUF_SIZE]; int i;

         va_list vlist;

         va_start(vlist,format);

         i=vsprintf(buf,format,vlist);

         va_end(vlist);

         OutputDebugString(buf);

         returni;

}

如果仍想使用printf函式名,可在相關的標頭檔案內做如下定義:

#define printf dprintf

相關推薦

VS2010使用printf列印資訊

由於本人在編寫C/C++程式碼是習慣於使用printf函式列印資訊,但在使用VC++2010編寫程式碼除錯時,printf列印的語句無法顯示,在網上查了些方法,如果列印資訊到“輸出”視窗可以使用OutputDebugString函式,但只能輸出字串,無法使用我們常用的格式化

makefile 與android.mk列印資訊

makefile裡面加列印: [table]@echo ' zImage - Compressed kernel image'  android.mk裡面加列印資訊: $(warning TEXT......) 這個函式被執行的時候,會輸出:TEXT......,但是make會繼續執行下去。

windows視窗程式輸出printf列印資訊

      有時候因為各種原因會需要輸出printf的列印資訊,廢話不多說如下(只要是Windows平臺下的桌面程式都可以包括QT程式): 注。有些程式要加標頭檔案如下:      #include <fcntl.h>      #include <io

makefile / Android.mk新增列印資訊

我們常常需要在makefile/android.mk檔案中新增列印資訊來顯示某個變數的值,或者用來控制makefile/android.mk的執行過程。makefile/android.mk檔案都遵循gnu make的語法規則,檢視gun make手冊可知,gnu make

除錯技巧:封裝printf列印除錯資訊和巨集定義開關

/* #define DEBUG */ #ifdef DEBUG #define DEBUG_ERR(format, ...) \ do{ \ printf("\r\n"); \ printf("FILE: "__FILE__", LINE: %

gdb列印資訊1——列印STL和陣列的內容

一、列印vector內容測試程式碼 #include<iostream> #include<vector> using namespace std; int main(int argc, char* argv[]) { vector<int&g

STM32高階開發(12)-在GCC使用printf列印串列埠資料

在大家使用keil或是iar開發stm32等arm晶片的時候,想來最不陌生的就是使用print通過串列埠輸出一些資料,用來除錯或是其他作用。但是要明確的是由於keil iar gcc 他們使用的標準C語言庫雖然都遵循一個標準,但他們底層的函式實現方式都是不同的,那麼在GCC中

使用vs2017編寫不帶console視窗程式時,使用printf列印輸出資訊

在使用vs2017編寫不帶console視窗程式時,有時需要列印一些資訊,來方便知道一些比如變數的值等,以往都是笨笨的使用messagebox彈出,但是當需要看多個值得時候,這種方法顯然就很難受了,也想過在vs中列印,也感覺不舒服,最後在網上看到可以用一個使用console視窗列印,在程式中照常使用

log日誌列印異常棧的具體資訊

問題與分析 最近在查專案的log時發現報了大量的NPE(NullPointerException),詭異的是隻log了Exception的類名,卻沒有具體的堆疊資訊,以致於無法對該NPE異常進行準確定位。 這是因為jvm自身存在著優化機制,但一個同樣的異常重複出現並被列印到log

大資料 class$1,class$2,class$innerclass的$的含義 shell指令碼--echo和printf列印輸出

科普 | 一文讀懂 DAG(有向無環圖)技術 https://baijiahao.baidu.com/s?id=1613728387077554506&wfr=spider&for=pc https://baike.baidu.com/item/%E6%9C%89%E5%90%91%E6%

PHP列印LOG資訊方式

 <html><body>中使用:print_r和echo <?php print_r($result);?> //可以輸出任何格式的資訊 <?php echo $result;?>//只可以輸出String格式的資訊 <

STM32M CUBE實現printf列印除錯資訊以及實現單位元組接收

相關文章在寫微控制器程式時我們一般喜歡使用printf來通過串列埠列印除錯資訊,但這個函式是不可以直接使用的,必須做點對庫函式的改動。STM32M CUBE是ST官方提供的庫以及初始化工具,很好很強大,但是在UART方面值提供瞭如下函式:?123456HAL_StatusTy

VS列印printf、cout或者Qt的qDebug等傳出的列印資訊

感謝“藍黑墨水”的文章:http://blog.csdn.net/lanxiaziyi/article/details/37819965在vs中列印printf、cout或者Qt的qDebug等常見的列

除錯日誌列印printf技巧

前言: 我們在寫程式的時候,總是或多或少會加入一些printf之類的語句用於輸出除錯資訊,但是printf語句有個很不方便的地方就是當我們需要釋出程式的時候要一條一條的把這些語句刪除,而一旦需要再次除錯的時候,這些語句又不得不一條條的加上,這給我們帶來了很大的不便,浪

VS2010將標準輸出資訊輸出到output

選擇你的專案,右鍵property->Configuration Properties->Build Events->Post-Build Event,在右方視窗的Command Line欄中輸入你編譯好的exe檔案的路徑。如我的C++Test工程在E:\C++Workspace\VS201

STM32重定向printf的兩種方法,並解決在TIMER2printf只能列印double型別的整數部分

方法一:直接在工程中新增以下程式碼,然後那個c檔案要使用,直接用 #include "stdio.h" 即可使用printf/**************加入以下程式碼,支援printf函式,而不需要選擇use MicroLIB***************/ #if 0

C語言——printf列印字串(關於資料在記憶體儲存格式的體現)

PS:本篇文章,是筆者在C語言學習過程中的所產生疑惑的地方,經過查閱相關資料得出的結論,如有錯誤的地方,還望指出改正。 int 佔4個位元組, 這裡輸入的8位16進位制數每相鄰兩位數代表一個位元組。如:44,43,42,41 int b = 0x414

MDK硬體除錯_在Debug printf Viewer視窗顯示列印資訊_ITM

#include <stdio.h> #define ITM_Port8(n)    (*((volatile unsigned char *)(0xE0000000+4*n))) #define ITM_Port16(n)   (*((volatile unsigned short*)(0xE0

visual studio使用printf列印迭代器內容時與cout的差別

迭代器是c++中用於遍歷容器中的元素的資料型別,但是今天在使用vs2015進行除錯的時候,發現對於c++的容器的實現,vs 2015與vc++ 6.0有很大的差異,應該是使用vs進行編譯時的一個漏洞吧。 問題起源 關於下面的程式碼,在vs 2015

vs2010顯示代碼的行數

-s src alt color ron gb2312 com size png 1、打開VS2010,然後“工具” → “選項” 2、在選項頁面,點擊“文本編輯器”→“所有語言”,在顯示裏將【行號】選中,然後確定就OK。 2、這樣子就出現行號了。 在vs2010中