格式化輸入
時(shí)間:2023-04-23 來源:華清遠(yuǎn)見
C語言中常用的輸入可以有多種方式,如scanf(),getchar(),gets()。它們的功能都類似(獲取鍵盤輸入的數(shù)據(jù)),但scanf()因功能使用、函數(shù)簡(jiǎn)單,而深受編程者喜愛。
scanf()函數(shù)功能: 執(zhí)行格式化輸入(用戶可以按照指定格式輸入數(shù)據(jù))
scanf()函數(shù)原型: int scanf(char *format[,argument,...]);
scanf()從標(biāo)準(zhǔn)輸入設(shè)備(通常指鍵盤) 讀取輸入的信息,并將讀入任何固有類型的數(shù)據(jù)自動(dòng)變換成適當(dāng)?shù)臋C(jī)內(nèi)格式。其格式為: scanf("<格式化字符串>",<地址表>);scanf()函數(shù)返回成功賦值的數(shù)據(jù)項(xiàng)數(shù),出錯(cuò)時(shí)則返回EOF。例如以下程序
int mian(void)
{
int a;
scanf(“%d”,&a);
return 0;
}
當(dāng)程序運(yùn)行到scanf(“%d”,&a)時(shí)會(huì)阻塞,等待鍵盤輸入。如果我們?cè)阪I盤上按下“5”、“7”然后回車了,那么“5”、“7”、回車鍵“\n”都被逐一放入緩沖區(qū)里,又由于回車鍵是特殊的字符(可實(shí)現(xiàn)清除行緩沖),它先將字符'\n'添加到緩沖區(qū),隨后便清除緩沖區(qū) ,將其中的所有字符發(fā)送到一個(gè)叫做輸入列表的地方 ,scanf函數(shù)以及其他標(biāo)準(zhǔn)輸入函數(shù)便會(huì)立刻從輸入列表中獲取內(nèi)容。
上述程序按照%d的規(guī)則從輸入列表中獲取字符 ,它獲取了'5'、'7',并且將其轉(zhuǎn)變?yōu)檎麛?shù)57,存入了變量a中。
如果我們將程序改為以下形式,
int mian(void)
{
char a[10];
scanf(“%s”,a);
return 0;
}
如果我們還是在鍵盤上按下“5”、“7”然后回車了,那么“5”、“7”、回車鍵“\n”還是一樣被逐一放入緩沖區(qū)里;又由于回車鍵是特殊的字符(可實(shí)現(xiàn)清除行緩沖),它先將字符'\n'添加到緩沖區(qū),隨后便清除緩沖區(qū) ,將其中的所有字符發(fā)送到一個(gè)叫做輸入列表的地方 ,scanf函數(shù)以及其他標(biāo)準(zhǔn)輸入函數(shù)便會(huì)立刻從輸入列表中獲取內(nèi)容。
程序按照%s的規(guī)則從輸入列表中獲取字符 ,它獲取了'5'、'7',并且將其轉(zhuǎn)變?yōu)樽址?ldquo;57”,存入了變量a中。
總之,我們輸入的數(shù)據(jù)及緩沖中的數(shù)據(jù)都是一致的,只不過scanf函數(shù)根據(jù)不同的格式進(jìn)行了不同的轉(zhuǎn)換而已(省去了程序員自己轉(zhuǎn)換數(shù)據(jù)的麻煩)。
課程分享:華清遠(yuǎn)見聯(lián)合NXP推出i.MX8M Plus開發(fā)與實(shí)踐
課程分享:鴻蒙HarmonyOS系統(tǒng)及物聯(lián)網(wǎng)開發(fā)實(shí)戰(zhàn)課程(
課程分享:HaaS EDU K1開發(fā)教程(附課程視頻及源碼下
新版C語言編程之控制語句視頻教程重磅贈(zèng)送(嵌入式入
價(jià)值2000元的嵌入式精裝教程大禮包免費(fèi)送!(搞懂嵌入
價(jià)值1000元的最新ARM系列視頻完整版教程新鮮出爐(免
【最新】ARM課程課堂實(shí)錄精華版視頻免費(fèi)領(lǐng)�。▋�(nèi)含源
華清遠(yuǎn)見上海中心喬遷新居,開啟全新發(fā)展篇章!
華清遠(yuǎn)見連續(xù)9年獲ISO9001質(zhì)量管理體系認(rèn)證,匠心做產(chǎn)
華清遠(yuǎn)見關(guān)于教育部高教司2023年產(chǎn)學(xué)合作協(xié)同育人項(xiàng)目
華清遠(yuǎn)見再獲兩項(xiàng)計(jì)算機(jī)軟件著作權(quán)登記證書,行業(yè)實(shí)力
華清遠(yuǎn)見嵌入式師資班圓滿收官,虛擬仿真全面構(gòu)建系統(tǒng)
華清遠(yuǎn)見被授予中國電子學(xué)會(huì)“電子信息人才能力提升工
企校協(xié)同創(chuàng)新大賽全國總決賽在清華大學(xué)圓滿收官,華清
華清遠(yuǎn)見教育集團(tuán)再次入選教育部供需對(duì)接就業(yè)育人項(xiàng)目
華清遠(yuǎn)見關(guān)于提醒學(xué)員謹(jǐn)防網(wǎng)絡(luò)詐騙的嚴(yán)正聲明
華清遠(yuǎn)見協(xié)辦“技能興魯”職業(yè)技能大賽人工智能賽項(xiàng)圓
