1 5 6 3 7 printf 輸出字串

Mondo 科技 更新 2024-01-29

/*--

003 程式設計大師 Win32 API 日常練習。

第三個示例是 SprintFc:控制台程式--- printf 輸出字串。

spritf 的函式。

c) www.bcdaren.com 編碼高手。

#include

在控制台中使用 printf

int main()

int a= 12;

char szbuffer[100];

sprintf_s(szbuffer,100,"hello %d", a);格式化記憶體中的字串。

printf(szbuffer);在控制台中使用 printf

puts(szbuffer);另一種輸出方式。

return 0;

SPRITF 的函式:格式化資料並將其輸出到字串中。 Sprintfs 檢查格式化字串中格式化字元的有效性,並且 sprintfs 攜帶接收格式化字串的緩衝區的大小。

sprintf s 函式不是將格式化的結果寫入標準輸出,而是將其儲存在 szbuffer 緩衝區中。

函式原型:int sprintf s(

char *buffer,指向要寫入的字串的緩衝區的 char 型別指標。

size t sizeOfBuffer,緩衝區的大小。

const char *format [,格式化字串。

argument] .可變引數列表,可以是任何型別的資料。

printf ("the sum of %i and %i is %i", 5, 3, 5+3) ;

該函式等效於:

char szbuffer [100] ;

sprintf (szbuffer, 100,"the sum of %i and %i is %i", 5, 3, 5+3) ;

puts (szbuffer) ;

結果:hello 12

hello 12

注意]這是乙個控制台程式,請注意開關。

004 程式設計大師 Win32 API 日常練習。

第四個例子是 sprintfC:Sprintf S-ASCII 版本用於 Windows。

messagebox乙個函式。

c) www.bcdaren.com 編碼高手。

#include

包括 ANSI 字元。

*程式條目**

ASCII 程式碼版。

int winapi winmain(hinstance instance, hinstance hprevinstance, pstr szcmdline, int icmdshow)

int a = 12;

char szbuffer[100];

格式化字串被儲存,標準 C 版本。

sprintf_s(szbuffer, 100, "hello %d", a);

帶 A 的 ASCII 版本

messagebox(null, szbuffer, "hello ascii", mb_ok | mb_iconinformation);

return 0;

messagebox乙個函式。

winuserapi

intwinapi

messageboxa(

在 opt hwnd hwnd 中,它所屬的視窗。

在 opt lpcstr lptext 中,文字訊息。

在 opt lpcstr lpcaption 中,標題。

in_ uint utype);按鈕、圖示樣式。

結果:圖 1-31。

圖1-31 備註]向 Windows 新增標頭檔案h。

005程式設計大師Win32 API日常練習。

第 5 個示例是 SprintFC:在 Windows 中使用 swprintf s-unicode 版本。

MessageBoxW 函式。

c) www.bcdaren.com 編碼高手。

#include

#include

Unicode 版本。

*程式條目**

int winapi winmain(hinstance hinstance, hinstance hprevinstance, pstr szcmdline, int icmdshow)

int a = 12;

wchar_t szbuffer[100]; //wchar

在記憶體中格式化字串,標準 C 版本。

swprintf_s(szbuffer, 100, l"hello %d", a);

messagebox(null, szbuffer, l"hello unicode",mb_ok | mb_iconinformation);用w

return 0;

注意:轉到“定義”進行檢視。

winuserapi

intwinapi

messageboxw(

in_opt_ hwnd hwnd,in_opt_ lpcwstr lptext,in_opt_ lpcwstr lpcaption,in_ uint utype);

結果:圖 1-32。

圖1-32006 Programming Expert的Win32 API每天都在練習。

第 6 個示例是 SprintFc:在 Windows 中使用 sprintf-generic 版本。

messagebox 函式。

stprintf 的巨集。

tchar.h 標頭檔案。

c) www.bcdaren.com 編碼高手。

#include

#include

包括 Microsoft 提供的與 Unicode 寬字元版函式和 ASCII 字元函式相容的標頭檔案。

#include

通用版。 *程式條目**

int winapi winmain(hinstance hinstance, hinstance hprevinstance, pstr szcmdline, int icmdshow)

int a = 12;

tchar szbuffer[100]; //wchar

stprintf_s(szbuffer, 100, text("hello %d"), a);在記憶體中格式化字串,Microsoft 版本的 tcharh.

messagebox(null, szbuffer, text("hello tchar"), mb_ok |

mb_iconinformation);

return 0;

MessageBox 函式:右鍵單擊 - 轉到定義。

#ifdef unicode

#define messagebox messageboxw

#else#define messagebox messageboxa

#endif // !unicode

stprintf 的巨集。

#define _stprintf_s swprintf_s

注意:SwprintF S 不是 C 語言的標準庫函式,而是 SprintF S 的寬字元版本,因此無需參考 C 標準庫標頭檔案 stdioh

tchar.H 標頭檔案:Microsoft 提供的與 Unicode 寬字元版函式和 ASCII 字元函式相容的標頭檔案。

tchar.H 標頭檔案是 ANSI C 標準的一部分,其中定義的每個函式和巨集都有乙個下劃線字首。

tchar.h 為需要字串引數的常見執行時函式(例如 printf、tcslen)提供了一系列替代名稱。

這些函式稱為泛型函式名稱,它們可以引用函式的 Unicode 和非 Unicode 版本。

如果定義了名為 Unicode 的識別符號和 tcharh 標頭檔案包含在程式中,tcslen 定義為 wcslen:

#define _tcslen wcslen

如果未定義 unicoe,則 tcslen 定義為 strlen:

#define _tcslen strlen

等等,tcharH 還使用名為 tchar 的新資料型別解決了雙字元資料型別的問題。 如果定義了 -unicode,則 tchar 為 wchar t:

typedef wchar_t tchar;

否則。 typedef char tchar;

如果定義了 Unicode 識別符號,則按如下方式定義名為 t 的巨集:

#define _t(x) l##x

使字母 l 和巨集引數連線在一起,如果巨集引數是"hello!",則 l x 為 l"hello!"。

如果未定義 Unicode 識別符號,則 T 巨集僅定義為:

#define _t(x) x

這兩個巨集的定義是相同的。

#define -t(x) _t(x)

#define _text(x) _t(x)

要使用的 Win32 控制台程式取決於所需的簡潔程度或詳細資訊級別。 基本上,字串文字必須按以下方式定義:在 t 或 text 巨集中:

text("hello!")

如果定義了 Unicode 識別符號,則字串將解釋為寬字元,如果未定義,則解釋為 8 位字串。

結果:圖 1-33。

圖1-33 備註]新增標頭檔案 tcharh。

定義乙個宣告引數陣列的 va list 指標變數。

va_list parglist ;

pargs,陣列初始化為“...”裡面有什麼。

parglist = (char *)szformat + sizeof (szformat) ;

va_start (parglist, szformat) ;返回引數列表中的第乙個引數。

第二個引數是緩衝區大小,第三個引數是 tchar 的數量。

vsnwprintf_s( szbuffer, 1024,sizeof (szbuffer) / sizeof (tchar),szformat, parglist) ;

釋放 pargs 陣列。

va_end (parglist) ;

return messagebox (null, szbuffer, szcaption, 0) ;通過視窗顯示。

int winapi winmain ( hinstance hinstance, hinstance hprevinstance,pstr szcmdline, int icmdshow)

int cxscreen, cyscreen;

螢幕寬度 - 檢索指定的系統指標或系統配置設定,第 4 章以進一步了解 習。

cxscreen = getsystemmetrics(sm_cxscreen);

cyscreen = getsystemmetrics(sm_cyscreen);螢幕高度。

messageboxprintf(text("screensize"),text("the screen is %i pixels wide by %i pixels high."),cxscreen, cyscreen);

return 0;

vsnwprintf s 函式:寬字元 vsprintf --c 標準庫函式。 使用引數列表將格式化輸出傳送到字串。

int vsprintf(

char *str,指向字元陣列的指標。

const char *format, string, 包含要寫入字串 str 的文字。

VA list arg 表示可變引數的列表。

getSystemMetrics 函式:檢索指定的系統指標或系統配置設定---以畫素為單位。

int getsystemmetrics(

int nindex 要檢索的系統指標或配置設定。

結果:圖 1-34。

注意]新增標頭檔案 stdioh。

圖1-34

相關問題答案

    《海明談財務管理》第37期 投資生存之戰

    我記得很多年前讀過一本書,大致意思是投資是一場戰爭。如果你想保證你的錢安全,你必須戰鬥。和不確定性。和通貨膨脹。在實際投資過程中確實存在一些相似的特徵。因為當我們做得好時,我們的資金就會增加。當我們做得不好時,我們的錢就會減少。市場上仍然有很多人想通過交易獲利。的確,一些投資者通過交易獲得了收益。然...

    翻開書,福氣 推薦第37期 易與范推薦書《中華文化的根本精神》。

    書熏香開福 這本書的開篇是有福的。推薦問題 .book中華文化的根本精神 建築很兇猛。關於作者 建設精神年月生於杭州,祖籍浙江嵊州。年畢業於上海普光中學,年畢業後考入北京大學哲學系任教。北京大學哲學系與中國研究院教授 博士生導師,北京大學宗教研究所名譽院長,北京大學學術委員會委員。主要著作有 老子道...

    色彩繽紛的 15 6 英吋遊戲膝上型電腦,最大單核睿頻頻率為 5 0GHz

    多彩在遊戲筆記本的設計上一直有著獨特的路線,這一點在其新一代星星XAT中尤為明顯。有別於常見的未來科技或遊戲風格外觀,這款筆記本融入了民族風元素的設計語言,彰顯其深厚的文化底蘊。繽紛江星XAT提供藍藍 星光灰 雷霆紫三種顏色供消費者選擇。我們手中的星灰色配色方案,機身主色調為灰色,上部經過金屬質感處...

    在這裡!朗詩西華府156套現房出售真的來了!

    前段時間,關於朗詩西華政府交接的訊息開始在大上瘋傳,引起了廣泛的關注和熱議。朗詩西華房子是備受追捧的房地產,現在現存的套待售房屋將以拍賣的形式開放,引起了很多人的注意買房人們的關注和期待。自新政策出台以來,許多多年未推出的物業已經解散,成為買房關注的焦點。朗詩西華政府也是其中之一,之前有人注意到過這...

    SA37DM71S4 SA37DRS90L4BE5理化池驅動減速機的立式臥式是什麼

    sadms,sadtn,sadrslbe,mtjaf y p . M ASADRSSBE 和 SA BMG HF TF 比率,S 比率 ,.,.,.,.,.等速比。該 S 的速比為 ,.,.,.,.,.等速比。SADMS SADRSLBE 理化池起重機減速機立式臥式擺線針輪減速機多少錢 張 B系列擺...