程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 淺析C語言字中的符串格式化顯示

淺析C語言字中的符串格式化顯示

編輯:C語言基礎知識

符號                  作用
──────────────────────────
    %d              十進制有符號整數
    %i              輸入整數 ,可以是帶前導0的八進制數或0x的十六進制數
    %u              十進制無符號整數
    %f              浮點數
    %s              字符串
    %c              單個字符
    %p              指針的值(內存地址)
    %e              指數形式的浮點數
    %x, %X          無符號以十六進制表示的整數
    %0              無符號以八進制表示的整數
    %g, %G          自動選擇合適的表示法
━━━━━━━━━━━━━━━━━━━━━━━━━━

格式字符串的一般形式為:
[標志][輸出最小寬度][.精度][長度]類型
其中方括號[]中的項為可選項。各項的意義介紹如下:
1.類型類型字符用以表示輸出數據的類型,其格式符和意義下表所示:

        表示輸出類型的格式字符 格式字符意義

        d 以十進制形式輸出帶符號整數(正數不輸出符號)

        o 以八進制形式輸出無符號整數(不輸出前綴O)

        x 以十六進制形式輸出無符號整數(不輸出前綴OX)

        u 以十進制形式輸出無符號整數

        f 以小數形式輸出單、雙精度實數

        e 以指數形式輸出單、雙精度實數

        g 以%f%e中較短的輸出寬度輸出單、雙精度實數

        c 輸出單個字符

        s 輸出字符串  

2.標志
標志字符為-、+、#、空格四種,其意義下表所示:
標志格式字符 標 志 意 義
- 結果左對齊,右邊填空格
+ 輸出符號(正號或負號)空格輸出值為正時冠以空格,為負時冠以負號
# 對c,s,d,u類無影響;對o類, 在輸出時加前綴。對x類,在輸出時加前綴0x;對e,g,f 類當結果有小數時才給出小數點    

3.輸出最小寬度
用十進制整數來表示輸出的最少位數。 若實際位數多於定義的寬度,則按實際位數輸出, 若實際位數少於定義的寬度則補以空格或0。

4.精度
精度格式符以“.”開頭,後跟十進制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字符, 則表示輸出字符的個數;若實際位數大於所定義的精度數,則截去超過的部分。

5.長度
長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出

說明:
(1)、可以在”%”和字母之間插進數字表示最大場寬。
例如: %3d 表示輸出3位整型數, 不夠3位右對齊。
%9.2f 表示輸出場寬為9的浮點數, 其中小數位為2, 整數位為6,小數點占一位, 不夠9位右對齊。
%8s 表示輸出8個字符的字符串, 不夠8個字符右對齊。
如果字符串的長度、或整型數位數超過說明的場寬, 將按其實際長度輸出。
但對浮點數, 若整數部分位數超過了說明的整數位寬度, 將按實際整數位輸出;若小數部分位數超過了說明的小數位寬度, 則按說明的寬度以四捨五入輸出。
另外, 若想在輸出值前加一些0, 就應在場寬項前加個0。
例如: %04d 表示在輸出一個小於4位的數值時, 將在前面補0使其總寬度為4位。
如果用浮點數表示字符或整型量的輸出格式, 小數點後的數字代表最大寬度,小數點前的數字代表最小寬度。
例如: %6.9s 表示顯示一個長度不小於6且不大於9的字符串。若大於9, 則第9個字符以後的內容將被刪除。

(2)、可以在”%”和字母之間加小寫字母l, 表示輸出的是長型數。
例如: %ld 表示輸出long整數,%lf 表示輸出double浮點數

(3)、可以控制輸出左對齊或右對齊, 即在”%”和字母之間加入一個”-” 號可說明輸出為左對齊, 否則為右對齊。
例如: %-7d 表示輸出7位整數左對齊,%-10s 表示輸出10個字符左對齊

(4)、可以在格式化字符和%之間加一個*號,用來跳過對應的輸入數據。
例如:scanf("%d%*d%d",&a,&b);當輸入10 20 30時,a和b的值分別是10與30.

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