scanf用法總結

2021-06-18 00:50:10 字數 916 閱讀 8271

scanf函式精髓:嚴格格式匹配。

常見的格式字元及說明:

格式字元 說明

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

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

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

從鍵盤輸入乙個字元 %s

從鍵盤輸入乙個字串 %f

和%e

從鍵盤輸入乙個實數

1) 

%d、%o、%x、%f、%e歸為一類,因為輸入的都是數。顯然它們的組合都是0~9等數字,十六進製制會多了a~f或a~f,%f和%e多了乙個小數點。當scanf的格式說明符為這5個中的其中乙個時,從鍵盤輸入的組合只能是上面那些東東,一旦遇到其它的輸入符號就終止。也就是說其它的符號可以當做終止符或間隔符(當有多個資料輸入時)。

2) 

%c,意為從鍵盤得到任乙個字元,這下就好玩了,它除了能單個的接收數字、字母、小數點等字元外,還能接收製表符、空格、換行鍵(回車鍵)這三個通常被當做間隔符的字元。可以理解為通吃型(一次只能吃乙個哦)。

3) 

%s,意為從鍵盤得到乙個字串。那字串什麼時候結束呢?顯然了,%s不能像%c那樣通吃了,這時三個間隔符會恢復他們的正職,遇到他們也就意為著乙個字串結束了。

舉例:

程式的本意是輸入x的值後,輸入另乙個字元給a。結果是輸入1後按回車就直接列印了結果。貌似程式不給我們輸入a的機會,是這樣嗎?不是的。a已經接收了乙個字元,就是剛才敲的換行鍵(回車)。不信可以列印出a的ascii碼看看:

第乙個輸入1後,按換行鍵(回車);第二個輸入1後,按空格鍵,再按回車鍵;第三個輸入1後,按tab鍵,再按回車。

那麼怎樣給a輸入值呢?常見的方法有三種:其中任選一種就行了,不同之處自己找吧。

scanf

還有許多要注意的地方,總之「

嚴格格式匹配

」之精髓不能丟!

關於getchar 與scanf 的用法總結

首先getchar 函式是輸入乙個字元,通常採用此函式將scanf 未處理的量進行釋放 char a,b 比如 scanf c a scanf c b printf a c,b c n a,b 此時你想讓a 1,b 2 你會這樣輸入1enter鍵加2加enter鍵 此時你會發現b的值為空,那是因為s...

scanf 函式用法

雖然有人說在大型程式設計中永遠不要使用scanf 但是對於習慣用c的人和參加 acm icpc的人,scanf 還是用的比較多的,而且用好了用起來也很方便。下面整理一點兒平時常需要用到而可能有些人一直理不清的一些知識 一般常識 scanf 函式的一般格式為 scanf 格式字串 輸入項首位址表 sc...

scanf函式的用法

scanf 通過鍵盤將資料輸入到變數中 兩種用法 用法一 scanf 輸入控制符 輸入引數 功能 將鍵盤輸入的字元轉化為輸入控制符所規定格式的資料,然後存入以輸入引數的值為地質的變數 用法二 scanf 非法輸入控制符 輸入控制符 輸入引數 功能 將從鍵盤輸入的字元轉化為輸入控制符所規定格式的資料,...