首先,先來講一下scanf的讀取流程:

從鍵盤輸入的都是字符類型(一系列的字符),scanf()的作用就是將這個(gè)字符序列轉(zhuǎn)換成一個(gè)或多個(gè)指定的類型,并保存到變量中。

從鍵盤輸入的字符序列會(huì)先緩存到鍵盤緩沖區(qū)中,當(dāng)用戶輸入回車,這時(shí)會(huì)清空鍵盤緩沖區(qū),將鍵盤緩沖區(qū)的數(shù)據(jù)(包括回車)送入到stdin中

這時(shí)scanf()開始從stdin中讀取數(shù)據(jù)。

scanf()在讀取每個(gè)字段時(shí)都會(huì)忽略空白符(%c比較特殊)。以%d為例,scanf()會(huì)先忽略stdin中的空白符,直到遇到第一個(gè)0-9開始讀取,如果后面的字符依然是0-9就繼續(xù)讀取,直到遇到空白符或者非0-9的字符,scanf認(rèn)為%d的讀取完畢,將讀取的字符序列轉(zhuǎn)換成十進(jìn)制整型保存到變量中。最后遇到的空白符或非法字符將返回到stdin中去。

如果忽略掉前面的空白符后第一個(gè)遇到的是非法的字符(非0-9),比如a,這時(shí)a會(huì)被返回到stdin中,程序也將會(huì)跳出scanf()函數(shù)(不管%d后面是否還存在帶輸入項(xiàng),如另一個(gè)%d,都會(huì)跳出整個(gè)scanf()函數(shù))。

看一個(gè)例子:

Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),移動(dòng)
        
        	<div   id=

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式