WSPRINTF格式化字串函式

2021-05-24 07:57:18 字數 846 閱讀 3077

win32 api中乙個很常用的函式wsprintf,這是乙個字串格式化函式,可以將數值按指定格式翻譯成字串,類似於c語言中的printf函式,它的原型是這樣的:

int wsprintf(

lptstr lpout,        // 輸出緩衝區位址

lpctstr lpfmt,       // 格式化串位址

...                  // 變數列表

變數列表的數目由格式化字串規定,wsprintf處理格式化字串,遇到普通的字元則直接拷貝到輸出,遇到%字元則代表有乙個變數,%後面不同的字母表示不同的輸出格式,如%d表示輸出為整數,%x表示輸出為16進製制,%s表示輸出字串等。

%符號和表示格式的d,x和s等字母間可以用數字來指定輸出時占用的位長,這時輸出的位長不夠時函式會用空格填齊。另外,表示位長的數字前可以加0來表示填齊時用「0」而非空格,如%08x表示輸出為8位前面用0填齊的16進製制數。

wsprintf是win32 api中惟一乙個引數數量不定的函式,使用wsprintf函式的時候,引數的數量取決於格式化字串中用%號指定的數量,變數列表的數目和格式化串中 的%格式一定要一一對應。     而d ,x s,等字母如果大寫 則說明輸出的字串為大寫

invoke wsprintf,addr szbuffer,addr szreceive,lparam,lparam

這條語句將lparam的數值以及lparam的字串按照szreceive格式化串定義的格式轉換,並將結果存放到szbuffer中,然後程式將szbuffer中的內容在乙個訊息框中顯示出來:

invoke messagebox,hwnd,offset szbuffer,addr szcaptionmain,mb_ok

字串格式化

sprintf snprintf snprintf std stringstream std strstream boost lexical cast boost format cstring format 1 sprintf 使用 sprintf 不安全,輕則破壞資料的準確性,重則程式崩潰。請看下...

格式化字串

通常在使用字串的時候,會對字串進行格式化,然後輸出或呼叫 一般我們使用替換標記對字串進行格式化 string str1 string.format add is 1,2,3 而且在c 中的替換標記可以以任意順序和次數出現在格式化字串中,但替換值是按順序排的,而且替換標記不能超出索引範圍 string...

字串格式化

例如 string s hello map.put target world string res format s,map 有什麼用呢?比如在some.properties中配置模板字串,但是如果用 這種方式,在配置了spring讀取properties注入變數的時候,這個變數就找不到會報錯。這個...