C語言格式化輸入輸出

2021-08-14 03:06:42 字數 2468 閱讀 3262

原創 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 如開啟...