天天看點

《C語言程式設計》一 2.4 資料的輸出和輸入

c語言中資料的輸出和輸入是通過調用函數實作的。scanf()函數實作鍵盤輸入,printf()函數實作螢幕輸出,這兩個函數由系統stdio.h庫函數提供。調用scanf()函數和printf()函數實作輸入/輸出時,應根據資料的類型和輸入/輸出的形式,通過格式控制來實作。

1.printf()函數一般格式

printf()函數的一般格式為:

printf(格式控制,輸出表列);

printf()函數的功能是将後面的參數按照指定的格式進行輸出,可以輸出任意類型的多個資料。

1)格式控制是由雙引号括起來的字元串,它包含三種資訊:

格式說明:由“%”和格式符組成,如%d,%f等。它的作用是将輸出的資料按照指定的格式輸出。

普通字元:需要原樣輸出的字元。

轉義字元:用于控制輸出。

2)輸出表列是一些要輸出的資料。例如:

《C語言程式設計》一 2.4 資料的輸出和輸入

語句中用了%f格式符,用來輸出一個實數。

2.整型輸出

整型資料輸出使用%d格式符,%d用來輸出十進制整數,正數輸出不帶符号,負數輸出帶負号。d前面還可以加一個整數,表示資料輸出的最小寬度。

【例2-4】 使用基本格式控制%d輸出整型資料。

輸出結果為:

第一個輸出函數中,用%d格式輸出整數a值,結果為-1;%5d表示輸出資料的最小寬度為5,不夠5位左端用空格補齊。

第二個輸出函數中,對于變量c,%2d規定輸出資料最小寬度為2,實際資料為3位,則突破限制,按照實際位數輸出。

3.實型輸出

%f用來以小數形式輸出單、雙精度的實數,可以像整型資料一樣指定寬度,也可以指定小數位數。

【例2-5】 使用基本格式控制%f輸出實型資料。

以%f格式輸出時,預設的小數位數為6位。由于單精度小數的有效數字位數是7位,超過7位就不是準确數字了,是以以%f格式輸出x時結果為123.456001,雙精度小數的有效數字為15~16位,是以以%f格式輸出y時結果為216.527353。%7.2f表示輸出資料最小寬度為7,小數點以後保留2位,是以以%7.2f格式輸出x時結果為123.46,輸出y時結果為216.53,左端補一個空格。

4.字元型輸出

%c格式符用來輸出一個字元。如果有一個整數,值在0~255之間,也可以用字元方式輸出。

【例2-6】 使用基本格式控制%c輸出字元型資料。

以%c格式輸出的是字元型資料的字元形式,以%d輸出的是字元的ascii碼。對于整數m,用%c輸出的是該整數對應的字元形式。

除了上面介紹的格式符以外,還有一些其他格式符。printf()函數的格式符含義見表2-4。

《C語言程式設計》一 2.4 資料的輸出和輸入

1.scanf()函數一般格式

scanf()函數的一般格式如下:

scanf()函數的功能是按照指定的格式輸入資料,可以輸入任意類型的多個資料。

格式控制與printf()函數含義相同,它由若幹個格式說明構成,其作用是控制轉換輸入資料的類型。

位址表列由若幹個位址構成,它們可以是變量的位址,也可以是字元串的首位址。

2.當輸入一串資料時,系統如何區分每個資料

當輸入一串資料時,系統可以按如下方式區分每個資料:

1)根據格式符的含義分隔字元。

輸入資料

2)系統按格式串指定的長度截取所需的資料。

3)用隐含的分隔符。在輸入資料中用空格、換行符或tab分隔資料。

scanf("%d%d%d",&a , &b , &c);

或輸入

4)使用顯示分隔符。在格式說明符中還可以有其他字元,在輸入字元時應輸入與這些字元相同的字元。

如果是

輸入時,兩個資料要用“:”分隔,如下所示:

5)%後的“*”附加說明符,用來表示跳過它相應的資料。

如果輸入

則a=3,b=5,第二個資料跳過不賦給任何變量。

scanf()函數的格式符含義見表2-5。

《C語言程式設計》一 2.4 資料的輸出和輸入
《C語言程式設計》一 2.4 資料的輸出和輸入

繼續閱讀