原創 2023年03月20日 20:08:32
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 表示按長整型量輸出。
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 表示輸入短整型
資料。
另外在使用 scanf 時還必須注意以下幾點:
1. scanf 函式中沒有精度控制,如: scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數部分為2位的實數。
2. 在輸入多個數值資料時,若格式控制串中沒有非格式字元作輸入資料之間的間隔則可用空格, tab或回車作間隔。 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'。
如果在格式控制中加入空格作為間隔,
如:scanf ("%c %c %c",&a,&b,&c);則輸入時各資料之間可加空格。
4. 如果格式控制串中有非格式字元則輸入時也要輸入該非格式字元。
例1:scanf("%d,%d,%d",&a,&b,&c); (其中用非格式符「 , 」作間隔符)
輸入應為:5,6,7
例2:scanf("a=%d,b=%d,c=%d",&a,&b,&c);
輸入應為:a=5,b=6,c=7
5. 如輸入的資料與輸出的型別不一致時,雖然編譯能夠通過,但結果將不正確。
double型輸入輸出形式如下:
double a;
scanf("%lf",&a);
printf("%f",a);
注:在輸入double型別時需要使用%lf才能正常得到a值,而在輸出double型別時可以使用%f,因為在執行printf("%f",a)時編譯器將自動把float型別的引數轉化為double型別
C語言 格式化輸入輸出
格式說明由 和格式字元組成,由 d f等。它的作用是將輸出的資料轉換為指定的格式輸出。格式說明總是由 字元開始的。不同型別的資料用不同的格式字元。格式字元有d,o,x,u,c,s,f,e,g等 如 d整型輸出,ld長整型輸出,o以八進位制數形式輸出整數,x以十六進製制數形式輸出整數,u以十進位制數輸...
C語言格式化輸入輸出
本文主要介紹一下c語言中printf和scanf兩個函式。printf函式被設計用來顯示格式串 format string 的內容,並且在該串中的指定位置插入可能的值。呼叫printf函式時必須提供格式串,格式串後面的引數是需要在顯示時插入到該串中的值 printf 格式串,表示式1,表示式2,顯示...
C 格式化輸入輸出
c 共有15個 輸入輸出 格式標記位,這15個標記位均為bit位,每個標記位都有自己的含義,且可以單獨設定。格式標記位的取值為0或1 0表示關閉 不使用此格式 1表示開啟 使用此格式 標記位含義 boolalpha 如開啟,則輸入和輸出使用bool值 即ture或false showbase 如開啟...