C語言----輸出語句(進階篇十四)


  。。。

  格式控制字符

    printf中的字符包括以下三種:

      (1)以%開頭的格式控制字符

      (2)以 \ 開頭的轉義字符

      (3)普通字符

 

    程序1

      printf的細節

 

// 14-1輸出語句printf細節

#include <stdio.h>

int main()
{
    long FmtLong = 99999999;   //長整型
    double FmtDouble = 88888888.88888888;   //雙精度型
    int FmtInt1 = 3, FmtInt2 = 4;  //兩個普通整型


    /*整數輸出*/
    printf("輸出整數:");
    printf("%d\n", 13);   //輸出整數

    printf("輸出整數:");
    printf("%i\n", -13);   //有符號整數

    printf("輸出無符號整數:");
    printf("%u\n", +13);    //無符號整好

    printf("輸出單個字符串:");
    printf("%c\n", 'X');    //輸出單個字符

    printf("輸出長整型:");
    printf("%ld\n", FmtLong);   //輸出長整型

    printf("以16進制輸出整數,沒有正負數:");
    printf("%x\n", 13);        //以16進制輸出整數,沒有正負數

    printf("以8進制輸出整數,沒有正負數");
    printf("%o\n", 13);        //以8進制輸出整數,沒有正負數

    /*控制輸出*/
    printf("控制寬度輸出,左端補空格:");
    printf("%3d\n", 13);        //控制寬度輸出

    printf("控制寬度輸出:");
    printf("%2d\n", 1234);

    printf("控制寬度輸出也適用於長整型:");
    printf("%2ld\n", FmtLong);  //長整型控制寬度


    printf("格式串后面的字符為普通字符");
    //格式串后面的字符為普通字符,普通字符原樣輸出,
    //如下面  "%2ld3\n"  里面的 3 會原樣輸出在最后一位,輸出的結果是:999999993
    printf("%2ld3\n", FmtLong);


    /*浮點輸出*/
    printf("\n");    //換行

    printf("輸出浮點數:");
    printf("%f\n", 100.33);   //浮點數輸出會精確到后六位 輸出結果是:100.330000

    printf("以指數形式輸出浮點數:");
    printf("%e\n", 100.33);      //以指數形式輸出浮點數

    printf("以指數形式輸出浮點數:");
    printf("%E\n", 100.33);      //以指數形式輸出浮點數

    printf("由系統自己決定采用e還是采用f格式輸出:");
    printf("%g\n", 100.33);   //系統自己決定采用e還是采用f的格式輸出

    printf("輸出長浮點型:");
    printf("%lf\n", FmtDouble);  //輸出長浮點型  此函數有自動四舍五入的功能


    printf("控制有效位數,左端補空格:");
    //控制有效位數,左端補空格    
    //"%8.1fok\n"  8 代表總位數輸出8位。 1 代表小數點后面有一位  ok 是原樣輸出
    printf("%8.1fok\n", 100.33);


    printf("控制有效位數,右端補空格:");
    printf("%-8.1fok\n", 100.33);      //控制有效位數,右端補空格


    /*特殊輸出*/
    printf("輸出一個換行:");
    printf("\n");        //輸出一個換行

    printf("輸出一個%號");
    printf("%%\n");        //輸出一個%號


    /*字符串輸出*/
    printf("用變量方式輸出字符串:");
    printf("%s\n", "你若盛開,蝴蝶自來");  //用變量的方式輸出字符串

    printf("原樣輸出字符串:");
    printf("不忘初心,方得始終,初心易守,始終難得\n");   //原樣輸出

    printf("混合輸出:");
    printf("天在高又怎樣,%s\n","踮起腳尖更接近陽光");       //混合輸出

    
    /*綜合輸出*/
    printf("同時輸出好幾個數據:");
    printf("%d,%lf\n", FmtLong, FmtDouble);   //同時輸出好幾個數據

    printf("直接輸出結果:");
    printf("%d\n", FmtInt1*FmtInt2);  //直接輸出結果

    printf("%d*%d=%d\n", FmtInt1, FmtInt2, FmtInt1*FmtInt2);

}

 

    ※雙引號中出現一個%,后面一定要跟隨一個輸出常量,變量或表達式。

    ※兩個連續的%表示輸出一個%

    ※一旦出現格式控制字符和轉義字符,它們立即會尋找后面緊跟着的字符進行組合。但是它們前面的算普通字符。如:

      printf(“a,%c\n”,t);

    %c只能算一個字符,它會輸出t中的字符。\n又算一個字符,它會輸出回車。而前面的a,(逗號)只能算普通字符,會原樣輸出。

 

    ※在格式控制串中,格式說明與輸出項從左到右在類型上必須一一對應匹配。如果不匹配,數據不能正確輸出,這時系統並不報錯。如:

      printf(“%d,%d”,i)

    因為只有一個參數,第二個%d會輸出一個亂碼。

 

    ※%m.nf指定輸出的數據共占m列,其中有n位小數。如果數值長度小於m,則左端補空格,超過m列,原樣輸出。

    ※%-m.nf與%m.nf基本相同,只是使輸出的數值向左端靠,右端補空格。

    ※用f或lf格式打印浮點數時,系統會自動四舍五入。

    ※格式控制字符除了X,E,G外,其它字符必須用小寫字母,如%d不能寫成%D。

 

  轉義字符

    原本字符常量只能是一個字符,但是因為有些字符看不見或是不好表達,所以特殊的字符常量可以是多個字符,它們以 \ 開頭后面跟着其它字符,這也叫“轉義字符”。

    下面是C語言中所有的轉義字符:

      \n 回車換行

      \t 橫向跳格(代表Tab鍵)

      \v 豎向跳格(打印機專用)

      \r 回車

      \f 換頁(打印機專用)

      \b 退格(代表Backspace鍵)

      \\ 反斜杠字符 \

      \’ 單引號

      \” 雙引號

      \ddd 以八進制形式代表的ASCII字符

      \xhh 以十六進制形式代表的ASCII字符

      \0 空值

 

    下面這行代碼:

      printf(“%c”,’\x41’);

    會輸出字符A

 

    注意:

      ※格式控制字符“%”只能在printf和scanf中使用,而轉義字符“\”可以用在所有字符和字符串處理函數中。

      ※轉義字符“\”會取后面所有符合條件的字符,並且只取一次,就失去作用,后面的都按普通字符輸出。如:\x41n就會輸出An

 

    程序2

      轉義字符輸出

// 14-2轉義字符輸出
#include <stdio.h>

 main()
{
     printf("沒有轉義字符:");
     printf("abc");            //沒有轉義字符
     printf("d");
     printf("\n");

     printf("回車:");
     printf("abc\r");        //回車 \r
     printf("d");
     printf("\n");

     printf("退格:");
     printf("abc\b");        //退格 \b
     printf("d");
     printf("\n");

     printf("豎向跳格只用作在打印機上,這里是亂碼:");
     printf("abc\v");        //豎向跳格只用作在打印機上,這里是亂碼\v\f
     printf("d");
     printf("\n");

     printf("引號和右斜杠只能用轉義字符輸出:");
     printf("\\\n");
     printf("\'\n");

     printf("空字符:\n");
     printf("\0\0\0");        //空字符什么也不做

     printf("用ASCII碼輸出:");
     printf("\101\n");        //用八進制輸出ASCII碼
     printf("\x42\n");        //用十六進制輸出ASCII碼

     printf("制表符演示:\n");
     printf("%d\t%d\t%d\t\n", 1, 2, 3);
     printf("%d\t%d\t%d\t\n", 100, 200, 300);
     printf("%d\t%d\t%d\t\n", 999, 10000, 4444);

     printf("-------------------------\n");
     printf("|%d\t|%d\t|%d\t|\n", 1, 2, 3);
     printf("|%d\t|%d\t|%d\t|\n", 100, 200, 300);
     printf("|%d\t|%d\t|%d\t|\n", 999, 10000, 4444);
     printf("-------------------------\n");

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM