c語言變量及輸入輸出


scanf:

  格式字符串的一般形式:%[*][輸入數據寬度][長度] 類型  (其中有方括號[] 的項為任選項。)

 

各項意義:

  1) 類型:表示輸入數據的類型,其格式符和意義如下表所示。

        格式字符 意義
              d 輸入十進制整數
              o 輸入八進制整數
              x 輸入十六進制整數
              u 輸入無符號十進制整數
             f,e 輸入實型數(用小數形式或指數形式)
              c 輸入單個字符
              s 輸入字符串

  2) “ *”符: 用以表示該輸入項讀入后不賦予相應的變量,即跳過該輸入值。

    例:scanf("%d %*d %d",&a,&b);
    輸入: 1 2 3,    則a=1,2被跳過,b=3。
  3) 寬度: 用十進制整數指定輸入的寬度(即字符數)
    例1:scanf("%5d",&a);
    輸入: 12345678  則a=12345,其余部分被截去。
    例2:scanf("%4d%4d",&a,&b);
    輸入: 12345678  則a=1234,b=5678。
  4) 長度: 長度格式符為 l 和 h, l 表示輸入長整型數據(如%ld) 和雙精度浮點數(如%lf) 。 h 表示輸入短整型數據

 

printf:
  格式字符串的一般形式: [標志][輸出最小寬度][ . 精度][長度] 類型   (其中方括號[] 中的項為可選項。)


各項意義:
  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 表示按長整型量輸出。

注意

  1. 在輸入多個數值數據時,若格式控制串中沒有非格式字符作輸入數據之間的間隔則可用空格, TAB或回車作間隔。
  2. C 編譯在碰到空格,TAB,回車或非法數據(如對“%d”輸入“12A”時, A 即為非法數據)時即認為該數據結束。
  3.  在輸入字符數據時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符
    例:scanf("%c%c%c",&a,&b,&c);
    輸入:d e f    則a='d', b=' ', c='e'。
    輸入:def       則a='d', b='e', c='f'。
  4. 如果格式控制中有非格式字符輸入時也要輸入該非格式字符。只有“%”開頭的部分才會被后面的值替換掉。
    例1:scanf("%d,%d,%d",&a,&b,&c);  (其中用非格式符“ , ”作間隔符)

    輸入應為:5,6,7
    例2:scanf("a=%d,b=%d,c=%d",&a,&b,&c);

  5. 輸入的數據與輸出的類型不一致時,雖然編譯能夠通過,但結果將不正確。

    double型輸入輸出形式如下:

            double a;

            scanf("%lf",&a);

            printf("%f",a);

    注:在輸入double類型時需要使用%lf才能正常得到a值,而在輸出double類型時可以使用%f,因為在執行printf("%f",a)時編譯器將自動把float類型的參數轉化為double類型

  6. 整數值用%d輸出,實數用%f輸出  8.0和5.0被看做為實數、浮點數
  7. printf中使用“\n”表示換行
  8. 輸出25,printf("%d",25);
  9. 輸出025,printf("%03d",25);


免責聲明!

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



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