學習scanf的一些摘錄

2021-07-11 12:32:52 字數 2666 閱讀 9343

scanf()

函式是格式化輸入函式,它從標準輸入裝置(鍵盤) 讀取輸入的資訊。

其呼叫格式為:      scanf("格式化字串》",《位址表》);

格式化字串包括以下三類不同的字元; 1

、 格式化說明符:

格式化說明符與printf()函式中的格式說明符基本相同。但和printf()函式中格式字串的用法有一些小區別。我們來看下面這個表。

格式字元                                           說明

%d                                              從鍵盤輸入十進位制整數

%o                                             從鍵盤輸入八進位制整數

%x                                             從鍵盤輸入十六進製制整數

%c                                             從鍵盤輸入乙個字元

%s                                              從鍵盤輸入乙個字串

%f                                             從鍵盤輸入乙個實數

%e                                             與%f的作用相同

附加格式說明字元表                                         

字元                                           說明

l                                            輸入"長"資料

h                                           輸入"短"資料

m                                           指定輸入資料所佔寬度

*                                           空讀乙個資料

2、   空白字元: 空白字元會使scanf()函式在讀操作中略去輸入中的乙個或多個空白字元。

3、   非空白字元: 乙個非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元。

位址表是需要讀入的所有變數的位址,而不是變數本身。這與printf()函式完全不同,要特別注意。各個變數的位址之間同","分開。

首先我們來看一下格式化說明符「%d」,從鍵盤輸入乙個十進位制整數,當多個輸入時,採用乙個或多個空格做為分隔符,看下面的例子:

執行結果如下:

分析如下:

scanf格式化輸入中有多個空格和』\n』,但是我們採用的是%d格式化輸入,所以空格和』\n』等轉義字元是沒有讀入的,這裡有乙個」%*3d」,意思是跳過輸入的前三個整型數字,從第四個數字開始讀入,所以我們輸入「432432432」,輸出的卻是432432,而不是432432432.

有同學就要問了,為什麼輸入「432432432」後還有輸入乙個字母』d』呢?其實這個地方輸入任何乙個非空位元組都是可以的。因為scanf必須從緩衝區讀入乙個非空字元再回車才會重新整理緩衝區,這裡scanf已經把「432432432」讀入變數,緩衝區裡就為空了,所以必須輸入乙個非空位元組,這樣按回車才會結束scanf輸入。

好,下面我們來看」%c」,還是先寫乙個例子:

執行結果如下:

分析:這裡一目了然,採用「%c」輸入時,scanf不僅會讀入非空字元,遇到空字元他也會讀入。

再看乙個例子:

#include

void main()

本例表示scanf格式控制串"%c %c"之間有空格時, 輸入的資料之間可以有空格間隔。這時候我們應該這樣輸入』a』空格』b』。

下面看一下」%s」,遇到空格換行等轉義字元不讀入,

分析:這裡一目了然,採用「%c」輸入時,scanf不僅會讀入非空字元,遇到空字元他也會讀入。

再看乙個例子:

#include

void main()

本例表示scanf格式控制串"%c %c"之間有空格時, 輸入的資料之間可以有空格間隔。這時候我們應該這樣輸入』a』空格』b』。

下面看一下」%s」,遇到空格換行等轉義字元不讀入,

執行結果如下:

Coders at Work一些摘錄

乙個哥們摘錄了,我再摘錄他的。這些高手們都不喜歡c 都非常崇尚熱情,乙個程式設計師沒有熱情,那真的很難達到高手級別的。很推崇表達能力,書寫能力,思維清晰很重要 但是總會有例外啊,陳景潤 應聘時候多談實際,而不是很懸的智力和數學測試,讓他寫 帶來引以為豪的 如果他兩眼放光的給你講他過去的專案經歷,那起...

scanf的一些技巧

一 scanf和gets 1.不同點 char string 50 scanf s string 當遇到回車,空格和tab鍵會自動在字串後面新增 0 但是不能接受回車,空格和tab鍵,他們仍會留在輸入的緩衝區中。gets string 遇到回車認為輸入結束,並用 n 替代 0 回車鍵不會留在輸入緩衝...

直接摘錄一些文字

1.人也是這樣,有的人生來就具備成功的素質。2.一直以來,靠堅強和自信所以快樂又積極地活著,堅強和自信就是人生的頂樑之柱,真不敢想象如果那一天我失去他們了生活會怎樣。常常告訴自己要敢於面對所有的困難,常常安慰自己很多困難過去後再回首就覺得特別的有價值。前面的路尚未明了,命運依舊難卜,但自信依舊在。仔...