上一篇講解了printf的一些高級(jí)用法,不知道大家有沒(méi)有學(xué)到東西,相應(yīng)的,這篇該為大家介紹對(duì)應(yīng)的輸入函數(shù)scanf的一些功能了!
scanf作為C語(yǔ)言標(biāo)準(zhǔn)函數(shù)庫(kù)中的格式化輸入函數(shù),大家對(duì)它常規(guī)的使用應(yīng)該都很明白,
接收控制的格式除了常用的%d,%c,%f等以外, 我們今天重點(diǎn)講解*在scanf中的用法和scanf的返回值的用法兩點(diǎn)。
第一個(gè),%*的用法,表示接收讀取但不存對(duì)應(yīng)的指定的類型數(shù)據(jù)。舉個(gè)例子:
int a,b;
scanf(“%d%*c%d”,&a,&b);? 大家在輸入1,2或者1/2時(shí)就都可以將1賦給a,2賦給b了。而中間的字符雖然接收但不用存儲(chǔ),完美的解決用戶再輸出兩個(gè)數(shù)字時(shí)可能有分隔的問(wèn)題。!
怎么樣呢,大家根據(jù)情況該用就用!
第二個(gè),scanf函數(shù)返回值的用法。這一用法在ACM競(jìng)賽當(dāng)中尤為普遍,也是ACM入門的必學(xué)內(nèi)容。
scanf與printf一樣,同為函數(shù),那么也有對(duì)應(yīng)的返回值為int類型。聲明情況如下圖:
scanf的返回值作用是表示成功接收對(duì)象的個(gè)數(shù),比如如下代碼,注意scanf接受情況對(duì)比結(jié)果:
1>兩個(gè)整數(shù)正常輸入
2>兩個(gè)整數(shù)非正常輸入
3>兩個(gè)整數(shù)帶%*分隔正常輸入
請(qǐng)大家注意以上三種情況的輸入對(duì)應(yīng)的返回值情況,大家自行分析理解,來(lái)理解scanf的返回值和*的作用!
ACM輸入輸出入門有興趣大家可以參考訓(xùn)練場(chǎng)(ACM/NOI)基本輸入輸出教程
祝大家學(xué)習(xí)愉快!
C語(yǔ)言研究中心(www.sztianhecheng.cn)