2 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
%3d :就是輸出時(shí)右對(duì)齊,如果數(shù)字長度小于3,則左邊用空格填充
%6d :就是輸出時(shí)右對(duì)齊,如果數(shù)字長度小于6,則左邊用空格填充
int a=20984,b=48090;
sprintf(str,"%3d%6d",a,b);
由于a的長度為5,所以不用空格了,而b的長度為5,但設(shè)定的對(duì)齊長度為6,所以左為用空格填充一位
故輸出:20984 48090

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
sprintf 是個(gè)變參函數(shù),定義如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前兩個(gè)參數(shù)類型固定外,后面可以接任意多個(gè)參數(shù)。而它的精華,顯然就在第二個(gè)參數(shù):格式化字符串上。sprintf 使用格式化字符串來指定串的格式,在格式串內(nèi)部使用一些以“%”開頭的格式說明符(format specifications)來占據(jù)一個(gè)位置,在后邊的變參列表中提供相應(yīng)的變量,最終函數(shù)就會(huì)用相應(yīng)位置的變量來替代那個(gè)說明符,產(chǎn)生一個(gè)調(diào)用者想要的字符串。
sprintf 最常見的應(yīng)用之一莫過于把整數(shù)打印到字符串中,所以,spritnf 在大多數(shù)場合可以替代itoa。
- 2 回答
- 0 關(guān)注
- 238 瀏覽
添加回答
舉報(bào)