程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ sprintf格式化解決方法詳解

C++ sprintf格式化解決方法詳解

編輯:C++入門知識

今天我們將會為大家詳細介紹一下有關C++ sprintf格式化的相關應用方法。希望初學者們可以根據本文介紹的內容充分掌握這方面的知識,並從中體驗這款語言給我們都帶來了哪些不一樣的應用方式。

名稱:

  1. printf, sprintf - 轉換成指定格式的輸出結果.   
  2. void printf( string format, ... );   
  3. string sprintf( string format, ... );  

語法:

  • C++函數模板基本概念講述
  • C++常量引用正確應用方法
  • C++鏈棧模板應用代碼解讀
  • C++剪切板常用應用技巧分享
  • C++ Doxygen實現功能分享

無返回值 printf( 字符串 format, ... );

字符串 sprintf( 字符串 format, ... );

用法: 以下為 LPC (s)printf() 的格式用法, Lynscar (Sean A Reith) 加入了一些擴充用法.

目前的版本支援以下的修改格式 (modifier):

" "  在正整數之前放入一個空格.

"+"  在正整數之前放入一個 + 號.

"-"  對齊欄位 (field) 的左邊. 請注意: 標准的 (s)printf() 預設是對齊右邊, 但是對主要以字符串為基礎的語言來說, 這樣非常奇怪. 在此為了保留與 C 的相容性而保留此一特性.

"|"  對齊欄位的中心.

"="  如果字符串長度比欄位大小還長, 使用縱列模式 (column mode). 在此C++ sprintf格式化只對字符串有效, 其他的類型一律無效. 縱列模式中, 字符串中的字會自動換行 (wrap).

"#"  表格模式. 在欄位之內, 字符串中的每一個字會換一行 (即每個字後面加上 \n). 只對字符串有效.

n 以整數指定欄位大小. 用 * 代替整數則使用參數指定欄位大小. 如果 n 是 0, 則此欄除了數據以外就以空值 (zeros) 填滿. 如果 n 不是 0, 此欄除了數據以外將放入空白字符 (space) 或是另外指定的字符.

"."n 指定輸出的精確度為 n. 普通的字符串在此之後則被截斷 (如果精確度 n 大於欄位長度, 則欄位長度變為精確度 n ). 表格則使用精確度指定縱列的總數 (如果不指定精確度, 則表格會自動計算最適合的輸出結果). 精確度對於其他的數據類型無效.

":"n n 指定 fs 和精確度, 如果 n 是 0, 則原來用以填滿欄位的空格就代以空值 (zeros).

"@"  參數為一個數組. 其他除了 @ 以外, 對應的格式數據亦將用於數組中的每一個元素.

"'X'" 單引號 (') 中的字符用以填滿整個欄位中, 數據以外的空間. (預設值是空白字符) (如果同時在欄位大小之前指定一個空值, 又指定 'X' 字符串填滿欄位, 則以後者為准) 注意: 如果欲填滿的字符串中要使用單引號 (') 或是雙引號 ("), 您必須使用 \' 或 \" 以避開編譯器的檢查.

以下是C++ sprintf格式化中指定類型的格式:

  1. % 此處不指定任何參數, 而以 % 輸出. 忽略所有的修改格式 (modifier).  
  2. O 參數為 LPC 數據類型.  
  3. s 參數為字符串.  
  4. d, i 參數為整數, 並以十進位印出.  
  5. c 參數為整數, 並以字符印出.  
  6. o 參數為整數, 並以八進位印出.  
  7. x 參數為整數, 並以十六進位印出.  
  8. X 參數為整數, 並以十六進位印出 (A 到 F 以大寫印出).  
  9. f 浮點數. 

返回: sprintf() 返回指定格式的字符串.

以上就是對C++ sprintf格式化的相關接受。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved