c 中的format()是什麼函式

時間 2022-02-05 13:20:14

1樓:匿名使用者

c++應該沒有這個函式的,你說的format是在mfc程式裡看到的吧 format是cstring字串類的成員函式 cstring::format( lpctstr lpszformat, ... ); 用法很簡單,就和c語言裡的printf函式一個樣 比如:

int count=3; cstring str; str.format("count is %d",count); 這樣str就變成:count is 3

2樓:匿名使用者

1、format是cstring類的一個成員函式,它通過格式操作使任意型別的資料轉換成一個字串。

2、函式宣告

function format(const format: string; const args: array of const): string; overload;

3、函式功能

事實上format方法有兩種形式,另外一種是三個引數的,主要區別在於它是執行緒安全的, 但並不多用,所以這裡只對第一個介紹。format引數是一個格式字串,用於格式化args裡面的值的。args是一個變數陣列,即它裡面可以有多個引數,而且每個引數可以不同。

例如:format("my name is %6s","wind");

返回的是:my name is wind

4、函式引數

format裡面可以寫普通的字串,比如"my name is" ,但有些格式指令字元具有特殊意義,比如"%6s"

格式指令具有以下的形式: "%" [index ":"] ["-"] [width] ["." prec] type

它是以"%"開始,而以type結束,type表示一個具體的型別。中間是用來格式化type型別的指令字元,是可選的。各個引數的含義與用途如下:

[type]

type引數可選的型別有d,u,f,e,g,n,m,p,s,x.

1) d 十進位制數,表示一個整型值,u 和d一樣是整型值,但它是無符號的,而如果它對應的值是負的,則返回時是一個2的32次方減去這個負數的絕對值。

例如:format("this is %u",-2);

返回的是:this is 4294967294

2)f 對應浮點數

3)e科學表示法,對應整型數和浮點數

例如:format("this is %e",-2.22);

返回的是:this is -2.220000e+000

4)g 這個只能對應浮點型,且它會將值中多餘的數去掉

例如:format("this is %g",02.200);

返回的是:this is 2.2

5)n 只能對應浮點型,將值轉化為號碼的形式,看一個例子就明白了

例如:format("this is %n",4552.2176);

返回的是:this is 4,552.22

6)m 錢幣型別,但關於貨幣型別有更好的格式化方法,這裡只是簡單的格式化,另外它只對應於浮點值

例如:format("this is %m",9552.21);

返回的是:this is ¥9,552.21

7)p 對應於指標型別,返回的值是指標的地址,以十六進位制的形式來表示

例如:format("this is %p",p);

返回的是:this is 0012f548

8)s 對應字串型別

9)x 必須是一個整形值,以十六進位制的形式返回

5、範例

例如:format("this is %d %d",12,13);

其中第一個%d的索引是0,第二個%d是1,所以字元顯示的時候,是這樣:this is 12 13

若定義為:format("this is %1:d %0:d",12,13);

那麼返回的字串就變成了:this is 13 12

若定義為:format("%d %d %d %0:d %d", 1, 2, 3, 4) ;

那麼將返回的是:1 2 3 1 2

若想返回的是1 2 3 1 4,必須這樣定義:format("%d %d %d %0:d %3:d", 1, 2, 3, 4) ;

注意:索引不能超出args中的個數,不然會引起異常。

例如:format("this is %2:d %0:d",12,13);

由於args中只有12 13 兩個數,所以index只能是0或1,這裡為2就錯了 。

[width] :指定將被格式化的值佔的寬度。

例如:format("this is %4d",12);

返回的是:this is 12

如果width的值小於引數的長度,則沒有效果。

例如:format("this is %1d",12);

返回的是:this is 12

c++ format函式的問題

3樓:

沒人知道你變數名是什麼意思,對應的是什麼的,只能給你說明下函式的功能:

for (i=0;idwnumberofitems;i++);

lrssi.format(l"%d",pwlanbsslist->wlanbssentries[i].lrssi);

wlanbsslist->dwnumberofitems 對應的是個數字,i小於它則for迴圈;

pwlanbsslist->wlanbssentries[i].lrssi 也是數字,需要被轉為字串型別的數字;

迴圈把pwlanbsslist->wlanbssentries[i].lrssi的值轉換成字串型別,

format是cstring類的一個成員函式,它通過格式操作使任意型別的資料轉換成一個字串;

%d表示你這個值是十進位制的整數型別;把整數轉換成字串

求vc++中cstring類成員函式format()的用法~

4樓:

使用cstring的成員函式format來轉換,例如:

整數(int)

str.format("%d",i);

浮點數(float)

str.format("%f",i);

字串指標(char *)等已經被cstring建構函式支援的資料型別可以直接賦值

str = username;

對於format所不支援的資料型別,可以通過上面所說的關於其它資料型別轉化到char *的方法先轉到char *,然後賦值給cstring變數。

5樓:匿名使用者

看看清楚,一樓用的和你的不一樣!

6樓:

cstring strtemp;

strtemp.format("%d",nr);

C 中c str 函式是什麼作用CC

c str函式的返回值是const char 的,不能直接賦值給char 所以就需要我們進行相應的操作轉化,下面就是這一轉化過程。c 語言提供了兩種字串實現,其中較原始的一種只是字串的c語言實現。與c語言的其他部分一樣,它在c 的所有實現中可用,我們將這種實現提供的字串物件,歸為c 串,每個c 串c...

在vb中format是什麼意思怎麼理解的

返回 variant string 其中含有一個表示式,它是根據格式表示式中的指令來格式化的。語法format expression format firstdayofweek firstweekofyear format 函式的語法具有下面幾個部分 部分 說明 expression 必要引數。任何...

C 純虛擬函式的C 純虛擬函式,C 中純虛擬函式有什麼作用

我愛你罁 純虛擬函式是在基類中宣告的虛擬函式,它可以在基類中有定義,而且派生類必須定義自己的實現方法。基類不能生成物件,可以使用指標或者引用派生類物件。基類不在基類中實現純虛擬函式的方法是在函式原型後加 0 virtual void funtion1 0 1 為了方便使用多型特性,我們常常需要在基類...