C語言教程 四 1 C語言中的基本輸入輸出

2022-05-29 06:48:09 字數 3171 閱讀 5506

一、字元輸出函式putchar

putchar函式是字元輸出函式,其功能是在終端(顯示器)輸出單個字元。其一般呼叫形式為: 

putchar(字元變數); 例: 

1 putchar(『a』); /*

輸出大寫字母a

*/2 putchar(x); /*

輸出字元變數x的值

*/3 putchar(『\n』); /*

換行*/

二、字元輸入函式getchar

getchar函式的功能是接收使用者從鍵盤上輸入的乙個字元。其一般呼叫形式為: 

getchar(); 

getchar會以返回值的形式返回接收到的字元.通常的用法如下: 

1

char 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 #include2

intmain()

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) 格式說明符中,可以指定資料的寬度,但不能指定資料的精度。例: 

1

float

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下執行結果如下:    

1

please 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 表示...