回覆列表
  • 1 # 使用者7389307437145

    一、 Printf 輸出格式

    C中格式字串的一般形式為: %[標誌][輸出最小寬度][.精度][長度]型別,其中方括號[]中的項為可選項。各項的意義介紹如下:

    1.型別型別字元用以表示輸出資料的型別,其格式符和意義下表所示:

    表示輸出型別的格式字元       格式字元意義

    a 浮點數、十六進位制數字和p-計數法(C99)

    A 浮點數、十六進位制數字和p-計數法(C99)

    c                 輸出單個字元

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

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

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

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

    g                 以%f%e中較短的輸出寬度輸出單、雙精度實數,%e格式在指數小於-4或者大 於等於精度時使用

    G                 以%f%e中較短的輸出寬度輸出單、雙精度實數,%e格式在指數小於-4或者大於等於精度時使用

    i 有符號十進位制整數(與%d相同)

    o                 以八進位制形式輸出無符號整數(不輸出字首O)

    p 指標

    s                 輸出字串

    x                 以十六進位制形式輸出無符號整數(不輸出字首OX)

    X                以十六進位制形式輸出無符號整數(不輸出字首OX)

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

    2.標誌

    標誌字元為-、+、#、空格和0五種,其意義下表所示:

    標誌格式字元      標 志 意 義

              結果左對齊,右邊填空格+           輸出符號(正號或負號)空格 輸出值為正時冠以空格,為負時冠以負號#          對c,s,d,u類無影響;對o類,在輸出時加字首0;對x類,在輸出時加字首0x或者0X;對g,G 類防止尾隨0被刪除;對於所有的浮點形式,#保證了即使不跟任何數字,也列印一個小數點字元0 對於所有的數字格式,用前導0填充欄位寬度,若出現-標誌或者指定了精度(對於整數),忽略3.輸出最小寬度用十進位制整數來表示輸出的最少位數。若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0。如:printf("%-10e\n" , 223.11);printf("%+10e\n" , 232.11111111);4.精度精度格式符以“.”開頭,後跟十進位制整數。本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元,則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。5.長度長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。6.特殊用法對於m.n的格式還可以用如下方法表示(例)char ch[20];printf("%*.*s\n",m,n,ch);前邊的*定義的是總的寬度,後邊的定義的是輸出的個數。分別對應外面的引數m和n 。我想這種方法的好處是可以在語句之外對引數m和n賦值,從而控制輸出格式。今天(06.6.9)又看到一種輸出格式 %n 可以將所輸出字串的長度值賦紿一個變數, 見下例:int slen;printf("hello world%n", &slen);執行後變數被賦值為11。一、 Printf 輸出格式

    C中格式字串的一般形式為: %[標誌][輸出最小寬度][.精度][長度]型別,其中方括號[]中的項為可選項。各項的意義介紹如下:

    1.型別型別字元用以表示輸出資料的型別,其格式符和意義下表所示:

    表示輸出型別的格式字元       格式字元意義

    a 浮點數、十六進位制

  • 中秋節和大豐收的關聯?
  • 在冬天,家裡的鋁合金房門為什麼手放上去會有觸電的感覺?