Sprintf函數的用法:
1.該函數包含在stdio.h的頭檔案中,使用時需要加入:#include <stdio.h>
2.sprintf與printf函數的差別:二者功能相似,但是sprintf函數列印到字元串中,而printf函數列印輸出到螢幕上。sprintf函數在我們完成其他資料類型轉換成字元串類型的操作中應用廣泛。隻要在printf中可以使用的格式化字元串,在sprintf都可以使用。其中的格式化字元串是此函數的精華。
3.sprintf函數的格式:int sprintf( char *buffer, const char *format [, argument,...] );
Format格式詳細說明:
%c 一個字元(char)
%d 有符号十進制整數(int)(%ld、%Ld:長整型資料(long),%hd:輸出短整形。)
%i 有符号十進制數(與%d相同)
%u 無符号十進制整數(unsignedint)
%e 浮點數e-計數法
%E 浮點數E-計數法
%f 單精度浮點數(float)十進制計數法(%.nf 這裡n表示精确到小數點後n位。十進制計數。)
%% 列印一個%
%o 無符号8進制整數
%x 無符号16進制整數(同%X)
例子1.輸入16進制數0x31,輸出1,3;
int dat;
cin>>hex>>dat;//0x31//或者用函數scanf("&d",dat);
char dat1,dat2;
sprintf(&dat1,"%X",dat&0xf);//16進制的高四位轉成字元串
sprintf(&dat2,"%X",dat>>4); //16進制的低四位轉成字元串
cout<<dat1;//1
cout<<dat2;//3
例子2.控制寬度和小數點位數,不足寬度的左邊補空格
char st[20];
double f=14.309948;
sprintf(st,"%6.2f",f);//" 14.31" (6是寬度,2是小數點後的位數)