printf輸出格式總結

printf函數稱爲格式輸出函數,其關鍵字最末一個字母f即爲“格式”(format)之意。其功能是按用戶指定的格式,把指定的數據顯示到顯示器屏幕上。


printf函數調用的一般形式
printf函數是一個標準庫函數,它的函數原型在頭文件“stdio.h”中。但作爲一個特例,不要求在使用 printf 函數之前必須包含stdio.h文件。printf函數調用的一般形式爲:
    printf(“格式控制字符串”, 輸出表列)
其中格式控制字符串用於指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。格式字符串是以%開頭的字符串,在%後面跟有各種格式字符,以說明輸出數據的類型、形式、長度、小數位數等。如:
“%d”表示按十進制整型輸出;
“%ld”表示按十進制長整型輸出;

“%c”表示按字符型輸出等。


非格式字符串原樣輸出,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數量和類型上應該一一對應。


格式字符串
在Turbo C中格式字符串的一般形式爲:
    [標誌][輸出最小寬度][.精度][長度]類型。
其中方括號[]中的項爲可選項。

各項的意義介紹如下。
1) 類型
類型字符用以表示輸出數據的類型,其格式符和意義如下表所示:
格式字符 意義
d 以十進制形式輸出帶符號整數(正數不輸出符號)
o 以八進制形式輸出無符號整數(不輸出前綴0)
x,X 以十六進制形式輸出無符號整數(不輸出前綴Ox)
u 以十進制形式輸出無符號整數
f 以小數形式輸出單、雙精度實數
e,E 以指數形式輸出單、雙精度實數
g,G 以%f或%e中較短的輸出寬度輸出單、雙精度實數
c 輸出單個字符
s 輸出字符串
 
2) 標誌
標誌字符爲 -、+、# 和空格四種,其意義下表所示:
標 志 意義
- 結果左對齊,右邊填空格
+ 輸出符號(正號或負號)
空格 輸出值爲正時冠以空格,爲負時冠以負號
# 對c、s、d、u類無影響;
對o類,在輸出時加前綴o;
對x類,在輸出時加前綴0x;

對e、g、f 類當結果有小數時纔給出小數點。


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

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

5) 長度

長度格式符爲h、l兩種,h表示按短整型量輸出,l表示按長整型量輸出。


舉例子:

#include<stdio.h>
#include<string.h>

int main(void)
{
    char i=0x41;
    int a=1234;
    float f=3.141592653589;
    double x=0.1512412221515197;
    char *c = "hello world!";

    printf("按照十進制整數格式輸出:%d\n", a);
    printf("按照十進制整數格式帶%輸出:%d%%\n", a);
    printf("輸出6位十進制整數,左邊補空格:%6d\n", a);
    printf("輸出6位十進制整數,左邊補0:%06d\n", a);
    printf("數據超過2位,按實際輸出:%2d\n", a);
    printf("輸出6位十進制整數,右邊補空格:%-6d\n", a);
    printf("浮點數有效數字位:%f\n", f);
    printf("小數點後5位:%.5f\n", f);
    printf("輸出長浮點數:%lf\n", x);
    printf("小數點後16位:%.16lf\n", x);
    printf("輸出字符:%c\n", i);
    printf("以十六進制輸出字符的ASCII碼值:%#x\n", i);
    printf("輸出字符串:%s\n", c);
    printf("輸出字長度爲9的符串:%.9s\n", c);
    printf("字符串字符個數:%d\n",strlen(c));

    return 0;
}


運行輸出:
按照十進制整數格式輸出:1234
按照十進制整數格式帶%輸出:1234%
輸出6位十進制整數,左邊補空格:  1234
輸出6位十進制整數,左邊補0:001234
數據超過2位,按實際輸出:1234
輸出6位十進制整數,右邊補空格:1234
浮點數有效數字位:3.141593
小數點後5位:3.14159
輸出長浮點數:0.151241
小數點後16位:0.1512412221515197
輸出字符:A
以十六進制輸出字符的ASCII碼值:0x41
輸出字符串:hello world!
輸出字長度爲9的符串:hello wor
字符串字符個數:12

Process returned 0 (0x0)   execution time : 0.000 s
Press any key to continue.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章