C語(yǔ)言中scanf的用法舉例
scanf的用法
scanf從緩沖區(qū)讀取數(shù)據(jù),每次讀取一個(gè)數(shù)據(jù),如果緩沖區(qū)中無(wú)內(nèi)容,則出現(xiàn)堵塞,在運(yùn)行窗口要求用戶(hù)輸入;
scanf("%d%d", &a, &b);
如果a和b都被成功讀入,那么scanf的返回值就是2
如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯(cuò)誤或遇到end of file,返回值為EOF。
且返回值為int型
一,scanf可以通過(guò)鍵盤(pán)輸入數(shù)據(jù)到變量中,它的格式有以下兩種
1,scanf(“輸入控制符”,輸入?yún)?shù));
%d 讀入十進(jìn)制整數(shù)
%o 讀入八進(jìn)制整數(shù)
%x,%X 讀入十六進(jìn)制整數(shù)
%c 讀入一個(gè)字符
%s 讀入一個(gè)字符串
%f,%F,%e,%E,%g,%G 用來(lái)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入。
%u 讀入一個(gè)無(wú)符號(hào)十進(jìn)制整數(shù)
h用于d,o,x前,指定為short
l用于d,o,x前,指定為long,用e,f 前指定為double
2,scanf(“非輸入控制符 輸入控制符”,輸入?yún)?shù));
非控制符一定要原樣輸入,還有注意如果非輸入控制符中有字符
的話,在輸入的時(shí)候不要忘記切換到英文輸入法來(lái)輸入英文字符
在賦值的時(shí)候如果用中文輸入法輸入了‘ ,’,結(jié)果就成了這樣


二,通過(guò)scanf進(jìn)行賦值
1,指定輸入數(shù)據(jù)所占列寬scanf(“%3d%3d”,&a,&b)
輸入:123456系統(tǒng)自動(dòng)將123賦給a,456賦給b
2,%后面加‘*’用來(lái)抑制輸入。scanf(“%2d%*3d%2d”,&a,&b)
輸入:1234567。將12賦給a,67賦給b。個(gè)數(shù)據(jù)”345”被跳過(guò)不賦給任何變量。
3, 輸入數(shù)據(jù)流分隔。根據(jù)格式字符的含義從輸入流中取得數(shù)據(jù),當(dāng)輸入流中數(shù)
據(jù)類(lèi)型與格式字符要求不符時(shí),就認(rèn)為這一項(xiàng)結(jié)束。
如:scanf(“%d%c,%d”,&a,&b,&c);
如果輸入如下信息:12r12則scanf函數(shù)在接收數(shù)據(jù)時(shí)發(fā)現(xiàn)”r”類(lèi)型不匹配,于是把
12賦值給a,把”r”賦給變量b,最后把12賦給c。
4,隱示分隔符??崭?、制表符’\t’,換行符/回車(chē)鍵’\n’都是C語(yǔ)言認(rèn)定的數(shù)據(jù)分隔
符。
注意
1,scanf函數(shù)不能控制精度 如 scanf(“3.2%”,&a);
這樣是錯(cuò)誤的
2,在使用scanf函數(shù)后,緩沖區(qū)可能會(huì)存有’\n’,這樣如果使用getchar/gest時(shí)會(huì)直接把’\n’進(jìn)行賦值,這時(shí)可以使用
1, 使用 getchar();來(lái)吃掉這個(gè)換行鍵
2,使用 fflush(stdin); 來(lái)清空緩沖區(qū);
到此這篇關(guān)于C++中scanf的用法舉例的文章就介紹到這了,更多相關(guān)scanf的用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C/C++題解LeetCode1295統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字
這篇文章主要為大家介紹了C/C++題解LeetCode1295統(tǒng)計(jì)位數(shù)為偶數(shù)的數(shù)字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的文本編輯器
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的文本編輯器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的聊天室功能
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
visual studio 2019工具里添加開(kāi)發(fā)中命令提示符的方法
這篇文章主要介紹了visual studio 2019工具里添加開(kāi)發(fā)中命令提示符的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C語(yǔ)言中各種運(yùn)算類(lèi)型全面總結(jié)
C語(yǔ)言運(yùn)算符是說(shuō)明特定操作的符號(hào),它是構(gòu)造C語(yǔ)言表達(dá)式的工具,C語(yǔ)言的運(yùn)算異常豐富,除了控制語(yǔ)句和輸入輸出以外的幾乎所有的基本操作都為運(yùn)算符處理2022-04-04
C++ 實(shí)現(xiàn)靜態(tài)鏈表的簡(jiǎn)單實(shí)例
這篇文章主要介紹了C++ 實(shí)現(xiàn)靜態(tài)鏈表的簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06
詳解C++編程中的嵌套類(lèi)的聲明與其中的函數(shù)使用
這篇文章主要介紹了C++編程中的嵌套類(lèi)的聲明與其中的函數(shù)使用,嵌套類(lèi)即在一個(gè)類(lèi)的范圍內(nèi)聲明和編寫(xiě)另一個(gè)類(lèi),需要的朋友可以參考下2016-01-01

