1. 程式人生 > >c語言 printf()與scanf()

c語言 printf()與scanf()

printf()用於顯示格式化的輸出.scanf()用於讀取格式化輸入.這些函式都在標準庫中.可以向他們傳遞能被看做是控制串和其他引數的引數列表.控制串是一個包含一些轉換說明的串或者格式.轉換說明用%開始,並且用一個轉換字元結束.例如,在%d中,字母d是一個轉換字元.

轉換字元 描述
c 字元
d 十進位制數字
e 科學計數法浮點數
f 浮點數
g e格式或者f格式,取較短的一個
s 字串

在顯示一個引數時,所顯示的引數位置被稱為引數的域(field),域中字元的個數被稱為域寬(field width).格式中域款能被表示為出現在%和轉換字元間的整數.
printf("%c%3c%7c",'A','B','C')

首先顯示A,然後以三個字元顯示B,但B只有1個位置,所以其餘的2個位置都是空格.

對於浮點值,能控制它的精度和寬度.精度是顯示在小數點右邊的十進位制數字的個數.在形式為%m.nf的格式中,m指定了域的寬度,n指定了精度.用形式為%mf的格式,僅指定了域的寬度.用形式為%.nf的格式,只指定了精度.

scanf()第一個引數是一個都帶有格式的控制串,該格式和輸入流中解釋字元的各種方式相符號.第二個引數是地址(address).
scanf("%d",&x)中格式%d使得在鍵盤上輸入的字元被解釋為十進位制整數,並把此十進位制整數值儲存在x中.

在用鍵盤吧值輸入到程式中時,一個字元序列被程式接受.我們稱這個序列為輸入流(input stream)

轉換字元 描述
c 字元
d 十進位制整數
f 浮點數(float)
lf 雙精度浮點數(double)
Lf 長浮點(long double)
s 字串

在讀入數字時,scanf()跳過空白字元(空格,換行符和跳格符),但在讀入字元時,不會跳過空白字元.