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