MFC中一些型別的Format格式

2021-09-11 23:40:56 字數 1808 閱讀 2047

很多時候一些格式需要以日誌的形式列印出來,就需要轉成cstring. 那麼就需要用到format

1. dword

dword a2=276321234;

cstring str2;

str2.format(_t("%u"),a2);

2. char[ ]

如果工程時unicode編碼,有三種方法:

char *pchar = "liuxijiao計算機網路";  

char bb=("你好");

uses_conversion;

cstring stre = a2t(bb); //方法一

cstring strd = a2w(pchar); //方法二

//方法三:

char pszfilename[name_len];

wchar_t temp[name_len];

multibytetowidechar(cp_acp, 0, pszfilename, strlen(pszfilename) + 1, temp,sizeof(temp));

3. tchar

tchar a=_t("this is a test");

cstring str;

str.format(_t("%s"), a);

4. char*

//方法一

char *pchar = "liuxijiao計算機網路";

uses_conversion;

cstring str = a2t(pchar);

//方法二

char *pchar = "liuxijiao計算機網路";

uses_conversion;

cstring str = a2w(pchar);

5. %x(十六進製制數)

使用printf(「%x」,…);可以輸出指定引數的16進製制形式,但是在實際的使用中,引數不一定都是32位的整數,有可能是16位的short,8位的char。這個時候不小心就會輸出錯誤的結果。正確寫法應該帶上每個引數的型別:

cstring strguid;

strguid.format(_t("%01x%01x%02x%02x%02x%04x%04x%04x%04x%04x%08x"),

(char)ullversion, (char)nviewnum, (short)nscanmode, (short)nbitcount, (short)ndeinterlacetype, (int)ulleditwidth, (int)ulleditheight,

(int)ullframerate, (int)width_ratio, (int)height_ratio, (ulonglong)lsum);

strguid.makeupper();

6. %llx(64位數格式化為十六進製制數)

7. 其他

%c                 單個字元

%d                 十進位制整數(int)

%ld                十進位制整數(long)

%f                 十進位制浮點數(float)

%lf                十進位制浮點數(double)

%o                 八進位制數

%s                 字串

%u                 無符號十進位制數

%x                 十六進製制數

MFC中一些控制項的使用和Opencv的一些變數轉換

這幾天需要做乙個小的demo,用到了mfc,其實本來想用.net,聽說更方便,但誰讓我對mfc熟悉呢,懶也沒辦法。下面是昨天遇到的一些問題 opencv中iplimage與mat的轉換 iplimage image mat frame frame image image iplimage frame...

Format函式的一些用法

format格式化字串 1.按序傳入引數 實際上format 裡面的會包裝成為乙個元組,若 裡面的 裡沒有具體的引數,則按照順序填入 print my name is my age is my hobby is format alex 18,pingpangball 結果 my name isale...

PLSQL中一些特殊型別定義方法

plsql中一些特殊型別定義方法 1.record 初始不存在資料 declare 定義型別 type record type name is record column name column type,或record type name table name rowtype 這樣省去了乙個個定義...