一、字元輸出函式putchar
putchar函式是字元輸出函式,其功能是在終端(顯示器)輸出單個字元。其一般呼叫形式為:
putchar(字元變數); 例:
1 putchar(『a』); /*輸出大寫字母a
*/2 putchar(x); /*
輸出字元變數x的值
*/3 putchar(『\n』); /*
換行*/
二、字元輸入函式getchar
getchar函式的功能是接收使用者從鍵盤上輸入的乙個字元。其一般呼叫形式為:
getchar();
getchar會以返回值的形式返回接收到的字元.通常的用法如下:
1char c; /*
定義字元變數c
*/2 c=getchar(); /*
將讀取的字元賦值給字元變數c
*/
三、格式化輸出函式printf
printf函式叫做格式輸出函式,其功能是按照使用者指定的格式,把指定的資料輸出到螢幕上.printf函式的格式為:
printf(「格式控制字串」,輸出表項);
其中格式控制字串用來說明輸出表項中各輸出項的輸出格式(好比我要吃蘋果,告訴printf是做成罐頭吃還是直接吃)。輸出表項列出了要輸出的項,各輸出項之間用逗號分開。輸出表項也可以沒有,則表示輸出的是格式字串本身。
格式控制字串有兩種:格式字串和非格式字串。非格式字串在輸出的時候原樣列印;格式字串是以%打頭的字串,在」%」後面跟不同格式字元,用來說明輸出資料的型別、形式、長度、小數字數等。格式字串的形式為: % [輸出最小寬度] [.精度] [長度] 型別
例如,%d格式符表示 用十進位制整形格式輸出。%f表示用實型格式輸出,%5.2f 格式表示輸出寬度為5(包括小數點),幷包含2位小數。常用的輸出格式及含義如下:
格式字元
d , i
以十進位制形式輸出有符號整數(正數不輸出符號)
o以八進位制形式輸出無符號整數(不輸出字首0)
x以十六進製制形式輸出無符號整數(不輸出字首0x)
u以十進位制形式輸出無符號整數
f以小數形式輸出單、雙精度型別實數
e以指數形式輸出單、雙精度實數
g以%f或%e中較短輸出寬度的一種格式輸出單、雙精度實數
c輸出單個字元
s輸出字串
1 #include2intmain()
3
*修飾符在printf()中的用法:
假如您不想事先指定字段寬度,而是希望由程式來制定該值,那麼您可以在字段寬度部分使用*代替數字來達到目的,但是您也必須使用乙個引數來告訴函式寬度的值是多少。具體的說,如果轉換說明符為%*d,那麼引數列表中應該包括乙個*的值和乙個d的值,來控制寬度和變數的值。該技術也可以和浮點值一起使用來指定精度和字段寬度。
您可以參考下面的例子:
1/*使用可變寬度輸出字段
*/2 #include3
int main(void)4
gcc下執行過程及結果如下:
1 please input number's width:26
3 the number is: 256
4then please input width and precision:58
36 weight = 25.500
關於printf()的返回值
printf函式的返回值是返回所列印的字元的數目。如有輸出錯誤,那麼printf()會返回乙個負數(printf()的一些老版本會有不同的值)。
四、格式化輸入函式scanf
scanf函式稱為格式輸入函式,即按照格式字串的格式,從鍵盤上把資料輸入到指定的變數之中。scanf函式的呼叫的一般形式為:
scanf(「格式控制字串」,輸入項位址列表);
其中,格式控制字串的作用與printf函式相同,但不能顯示非格式字串,也就是不能顯示提示字串。位址表項中的位址給出各變數的位址,位址是由位址運算子」&」後跟變數名組成的。
scanf 函式中格式字串的構成與printf函式基本相同,但使用時有幾點不同.
(1) 格式說明符中,可以指定資料的寬度,但不能指定資料的精度。例:
1float
a;2 scanf(「%10f」,&a); //
正確3 scanf(「%10.2f」,&a); //
錯誤
(2) 輸入long型別資料時必須使用%ld,輸入double資料必須使用%lf或%le。
(3) 附加格式說明符」*」使對應的輸入資料不賦給相應的變數。
scanf()函式所用的轉換說明符與printf()所用的幾乎完全相同。主要區別在於printf()把%f、%e、%e、%g、%g同時用於float型別和double型別,而scanf()只是把他們用於float型別,而用於double型別時要求使用l(字母l)修飾符。
轉換說明符
%c把輸入解釋成乙個字元
%d把輸入解釋成乙個有符號十進位制整數
%e,%f,%g,%a
把輸入解釋成乙個浮點數(%a是c99的標準)
%e,%f,%g,%a
把輸入解釋成乙個浮點數(%a是c99的標準)
%i把輸入解釋成乙個有符號十進位制整數
%o把輸入解釋成乙個有符號的八進位制整數
%p把輸入解釋成乙個指標(乙個位址)
%s把輸入解釋成乙個字串:輸入的內容以第乙個非空白字元作為開始,並且包含直到下乙個空白字元的全部字元
%u把輸入解釋成乙個無符號十進位制整數
%x,%x
把輸入解釋稱乙個有符號十六進製制整數
*修飾符在scanf中()的用法:
1/*用*跳過scanf接收的數字
*/2 #include3
int main(void)4
gcc下執行結果如下:
1please enter three number:
22014
2015
2016
3 the last number is
2016
關於scanf()的返回值
1 C語言中的 sizeof 問題
1 型別轉換的問題 include define num sizeof arr sizeof arr 0 int arr int main return 0 輸出的結果是空的!解釋 我們要知道的是 sizeof 返回的是乙個unsinged int的值!那麼在for迴圈的時候,i 1就會向後面轉型,...
C語言教程(三)
主要普及c語言的基本語法,本文預設初看的人啥也不懂,如果有程式設計基礎請略過 下面來仔細看一下c編輯器預設給我們生成的 include int main 執行後可以在控制台看見 hello word於是可以做以下嘗試根據程式的變化來逐一了解 的含義 注釋printf hello word n inc...
C語言教程 迴圈
c語言中有2種最常用的迴圈語句 while迴圈 和for 迴圈。while迴圈 while loop while 表示式 程式塊還有乙個變種 do while迴圈,do while 表示式 只要while裡得到表示式是真的,就一直執行程式塊的語句。for迴圈 for loop for 表示式1 表示...