C++ sprintf格式化解決方法詳解
今天我們將會(huì)為大家詳細(xì)介紹一下有關(guān)C++ sprintf格式化的相關(guān)應(yīng)用方法。希望初學(xué)者們可以根據(jù)本文介紹的內(nèi)容充分掌握這方面的知識(shí),并從中體驗(yàn)這款語(yǔ)言給我們都帶來(lái)了哪些不一樣的應(yīng)用方式。
名稱:
- printf, sprintf - 轉(zhuǎn)換成指定格式的輸出結(jié)果.
- void printf( string format, ... );
- string sprintf( string format, ... );
語(yǔ)法:#t#
無(wú)返回值 printf( 字符串 format, ... );
字符串 sprintf( 字符串 format, ... );
用法: 以下為 LPC (s)printf() 的格式用法, Lynscar (Sean A Reith) 加入了一些擴(kuò)充用法.
目前的版本支援以下的修改格式 (modifier):
" " 在正整數(shù)之前放入一個(gè)空格.
"+" 在正整數(shù)之前放入一個(gè) + 號(hào).
"-" 對(duì)齊欄位 (field) 的左邊. 請(qǐng)注意: 標(biāo)準(zhǔn)的 (s)printf() 預(yù)設(shè)是對(duì)齊右邊, 但是對(duì)主要以字符串為基礎(chǔ)的語(yǔ)言來(lái)說(shuō), 這樣非常奇怪. 在此為了保留與 C 的相容性而保留此一特性.
"|" 對(duì)齊欄位的中心.
"=" 如果字符串長(zhǎng)度比欄位大小還長(zhǎng), 使用縱列模式 (column mode). 在此C++ sprintf格式化只對(duì)字符串有效, 其他的類型一律無(wú)效. 縱列模式中, 字符串中的字會(huì)自動(dòng)換行 (wrap).
"#" 表格模式. 在欄位之內(nèi), 字符串中的每一個(gè)字會(huì)換一行 (即每個(gè)字后面加上 \n). 只對(duì)字符串有效.
n 以整數(shù)指定欄位大小. 用 * 代替整數(shù)則使用參數(shù)指定欄位大小. 如果 n 是 0, 則此欄除了數(shù)據(jù)以外就以空值 (zeros) 填滿. 如果 n 不是 0, 此欄除了數(shù)據(jù)以外將放入空白字符 (space) 或是另外指定的字符.
"."n 指定輸出的精確度為 n. 普通的字符串在此之后則被截?cái)?(如果精確度 n 大于欄位長(zhǎng)度, 則欄位長(zhǎng)度變?yōu)榫_度 n ). 表格則使用精確度指定縱列的總數(shù) (如果不指定精確度, 則表格會(huì)自動(dòng)計(jì)算最適合的輸出結(jié)果). 精確度對(duì)于其他的數(shù)據(jù)類型無(wú)效.
":"n n 指定 fs 和精確度, 如果 n 是 0, 則原來(lái)用以填滿欄位的空格就代以空值 (zeros).
"@" 參數(shù)為一個(gè)數(shù)組. 其他除了 @ 以外, 對(duì)應(yīng)的格式數(shù)據(jù)亦將用于數(shù)組中的每一個(gè)元素.
"'X'" 單引號(hào) (') 中的字符用以填滿整個(gè)欄位中, 數(shù)據(jù)以外的空間. (預(yù)設(shè)值是空白字符) (如果同時(shí)在欄位大小之前指定一個(gè)空值, 又指定 'X' 字符串填滿欄位, 則以后者為準(zhǔn)) 注意: 如果欲填滿的字符串中要使用單引號(hào) (') 或是雙引號(hào) ("), 您必須使用 \' 或 \" 以避開編譯器的檢查.
以下是C++ sprintf格式化中指定類型的格式:
- % 此處不指定任何參數(shù), 而以 % 輸出. 忽略所有的修改格式 (modifier).
- O 參數(shù)為 LPC 數(shù)據(jù)類型.
- s 參數(shù)為字符串.
- d, i 參數(shù)為整數(shù), 并以十進(jìn)位印出.
- c 參數(shù)為整數(shù), 并以字符印出.
- o 參數(shù)為整數(shù), 并以八進(jìn)位印出.
- x 參數(shù)為整數(shù), 并以十六進(jìn)位印出.
- X 參數(shù)為整數(shù), 并以十六進(jìn)位印出 (A 到 F 以大寫印出).
- f 浮點(diǎn)數(shù).
返回: sprintf() 返回指定格式的字符串.
以上就是對(duì)C++ sprintf格式化的相關(guān)接受。