c語言基礎 - printf函數

一 printf函數的介紹函數

  printf函數是一個標準庫函數,可以以精確的格式輸出程序運算的結果。spa

    printf函數的調用格式爲:
    printf("格式控制字符串",輸出項列表); 如:printf("%d,%d",a,b); 內存

  格式字符串 字符串

   是由格式字符(包括:轉換說明符、標誌、域寬、精度)和普通字符組成,轉換說明符和百 分號(%)一塊兒使用,用來講明輸出數據的數據類型、標誌、長度和精度 it

  輸出項列表 class

    能夠是常量、變量和表達式,也能夠沒有輸出項,這些輸出項必須與格式控制字符串在類型 和數量上徹底對應,不然,結果將不可預測。當有多個輸出項時,各個輸出項之間用逗號 ‘,’分隔 變量

思考:
  int main() { 數據類型

  printf(「hello」);二進制

  printf(「world!」);float

  return 0;

}

  輸出結果仍爲:helloworld! 

 

二 格式控制符使用說明

  printf的格式控制的完整格式:
    % - 0 m.n l或h 格式字符
   下面對組成格式說明的各項加以說明:
    %:表示格式說明的起始符號,不可缺乏。

    -:有-表示左對齊輸出(右側補空格),如省略表示右對齊輸出(左側補空格)。

    0:有0表示指定空位填0,如省略表示指定空位不填。

    m.n:m指域寬,即對應的輸出項在輸出設備上所佔的字符數。N指精度。用於說明輸出的實型 數的小數位數。對數值型的來講,未指定n時,隱含的精度爲n=6位。

    l或h:l對整型指long型,對實型指double型。h用於將整型的格式字符修正爲short型。

 

 

  格式字符

    格式字符用以指定輸出項的數據類型和輸出格式。

  d格式:用來輸出十進制整數。有如下幾種用法: %ld:輸出長整型數據。

  o格式:以無符號八進制形式輸出整數。對長整型能夠用"%lo"格式輸出。一樣也能夠指定字段寬 度用「%mo」格式輸出。
  例:
    main(){

    int a = -1;

    printf("%d, %o", a, a);

    }
運行結果:-1,177777 程序解析:-1在內存單元中(以補碼形式存放)爲(1111111111111111)2,轉換爲八進制數爲 (177777)8。

  x格式:以無符號十六進制形式輸出整數。對長整型能夠用"%lx"格式輸出。一樣也能夠指定字段 寬度用"%mx"格式輸出。

  u格式:以無符號十進制形式輸出整數。對長整型能夠用"%lu"格式輸出。一樣也能夠指定字段寬 度用「%mu」格式輸出。

  c格式:輸出一個字符。

  s格式:用來輸出一個串。有幾中用法
    %s:例如:printf("%s", "CHINA")輸出"CHINA"字符串(不包括雙引號)。

    %ms:輸出的字符串佔m列,如字符串自己長度大於m,則突破獲m的限制,將字符串所有輸出。若串 長小於m,則左補空格。
    %-ms:若是串長小於m,則在m列範圍內,字符串向左靠,右補空格。

    %m.ns:輸出佔m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側,左補空格,注 意:若是n未指定,默認爲0。

 

 

三 實型精度問題

  對於單精度數,使用%f格式符輸出時,僅前7位是有效數字,小數6位.

  對於雙精度數,使用%lf格式符輸出時,前15位是有效數字,小數6位

  float double 二進制有效位數 24位 53位

  十進制有效位數 7位 15位

  有效數字的位數與指定輸出的小數位數(%.7f)是兩碼事。

  「有效數位爲7」:是指此數據從第一個非零數字開始,偏差不超過本數位半個單位的、精確可信 的數位是7位(包括小數點前的非零數位)。

  %.7f:是指輸出此數據的時候,小數點以後要顯示7位數字(可是若是小數點前還有一些非零數 位,那麼小數點後的這7位並不能保證都是精確可信的有效數位,) 

相關文章
相關標籤/搜索