




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Scanf函數(shù)第1頁Scanf函數(shù)功效:
按格式參數(shù)要求,從標(biāo)準(zhǔn)終端上把數(shù)據(jù)傳送到地址參數(shù)所指定內(nèi)存空間中.格式:scanf(格式控制參數(shù),地址1,地址2,……);說明:第2頁地址參數(shù)
C中允許程序員間接使用地址,這個地址是經(jīng)過對變量名進(jìn)行”求地址”運算得到,求地址運算符為&,得到地址是一個符號地地址.例:inta;floatb;則:&a,&b為兩個符號地址其中:&a是取a地址,即a兩個字節(jié)首地址
&b是取b地址,即b4個字節(jié)首地址第3頁格式控制參數(shù)
scanf函數(shù)與printf函數(shù)參數(shù)有相同地方,也有不一樣地方;scanf參數(shù)有兩種成份:格式說明項和輸入分隔符格式說明項基本組成
%*ml或h格式字符輸入數(shù)據(jù)類型和格式說明符長度修正符域?qū)捳f明符賦值抑制符格式說明起始符第4頁格式字符與Printf函數(shù)使用方式相同,把輸入分為(int,用d,o,x指定)整型,實型(float,用f,e指定),字符型(用c指定).在整型與實型中可再加長度修正說明符:加h(短整型),加l(長整型及雙精度型).m(注意沒有n)用以指定輸入數(shù)據(jù)寬度.*作用是在按格式說明讀入數(shù)據(jù)后不送給任何變量,即“虛讀”.第5頁輸入流數(shù)據(jù)分隔
Scanf函數(shù)從輸入數(shù)據(jù)流中接收非空字符,再轉(zhuǎn)換成格式項描述格式,傳送到與格式項對應(yīng)地址中去.
當(dāng)操作人員從終端上鍵入一串字符時,系統(tǒng)怎么知道哪幾個字符算一個數(shù)據(jù)項呢?有以下幾個方法:依據(jù)格式字符含義從輸入流中取得數(shù)據(jù),當(dāng)輸入流中數(shù)據(jù)類型與格式字符要求不符合時,就認(rèn)為一個數(shù)據(jù)項結(jié)束.第6頁例:main(){inta;charb;floatc;printf(“inputabc:”);scanf(“%d%c%f”,&a,&b,&c);printf(“a=%d,b=%c,c=%f”,a,b,c);}一次執(zhí)行結(jié)果:inputabc:1234r1234.567//帶下劃線為輸入流
a=1234,b=r,c=1234.567scanf首先按%d要求取數(shù)字字符,到r時發(fā)覺類型不符合,于是把”1234”轉(zhuǎn)換成整型送到地址&a所指內(nèi)存中,接著接收字符r送入地址&b所指1個字節(jié)內(nèi)存中,最終把”1234.567”送入&c所指4個字節(jié)內(nèi)存中.第7頁依據(jù)格式項中指定域?qū)挾确指舫鰯?shù)據(jù)項
例:main(){inta;floatb,c;scanf(“%2d%3f%4f”,&a,&b,&c);printf(“a=%d,b=%f,c=%f”,a,b,c);}一次運行情況:123456787654321(回車)a=12,b=345.000000,c=6789.000000
因為%2d只要求讀入2個數(shù)字字符,所以把12讀入&a所指地址中,即變量a中;%3f要求讀入3個數(shù)字,故b變量中為456.0000;%4f將要求取4個字符進(jìn)入c,c中值為6789.000.第8頁用分隔符:空格,跳格符(‘\t’),換行符(‘\n’)都是C確定正當(dāng)分隔符.例:main(){inta;floatb,c;scanf(“%d%f%f”,&a,&b,&c);printf(“a=%d,b=%f,c=%f”,a,b,c);}
一次運行情況以下:
12345678987654321(回車)a=12,b=345.000000,c=6789.000000
第9頁C中在輸入數(shù)據(jù)時,在格式符中能夠使用自定義分隔符(必須是非格式字符)來分隔數(shù)據(jù).
例:main(){inta;floatb,c;scanf(%d,%f,%f”,&a,&b,&c);printf(“a=%d,b=%f,c=%f\n”,a,b,c);}
一次運行結(jié)果:
12345,678,976.38(回車)a=1234,b=678.000000,c=976.380000
第10頁例:main(){inta;floatb,c;scanf(“a=%d,b=%f,c=%f”,&a,&b,&c);printf(“a=%d,b=%f,c=%f\n”,a,b,c);}
一次運行結(jié)果:
a=12345,b=678,c=976.38(回車)a=12345,b=678,c=976.380000在輸入數(shù)據(jù)時,格式符中普通字符要原樣輸入.第11頁Scanf停頓與返回
scanf函數(shù)在執(zhí)行中碰到下面兩種情況后結(jié)束(停頓):格式參數(shù)中格式項用完-----正常結(jié)束;發(fā)生格式項與輸入域不匹配時---非正常結(jié)束;
比如:從鍵盤輸入數(shù)據(jù)數(shù)目不足.
第12頁scanf是一個函數(shù),它有一個返回值.這個返回值就是成功匹配項數(shù).
例:main(){inta,b,c;printf(%d\n”,scanf(“%3d-%2d-%4d”,&a,&b,%c));printf(“a=%d,b=%d,c=%d\n”,a,b,c);}
其中,scanf作為printf參數(shù),程序運行時先執(zhí)行scanf,然后再由printf輸出該scanf返回值.第13頁一次運行結(jié)果以下:
123-45-6789(回車)3a=123,b=45,c=6789
正確地輸入了三個數(shù),scanf正常結(jié)束,scanf返回值為3,作為printf參數(shù)項,由printf輸出.所以,運行結(jié)果第一行為3.
第14頁另一次運行情況:
12-345-6789(回車)2a=12,b=34,c=62
在按%3d讀數(shù)據(jù)時,第3個字符不是數(shù)字,故提前截止,只將2個字符12送給a,再按%2d讀入2個字符34送給b,本應(yīng)出現(xiàn)‘-’,但卻輸入5,不正當(dāng),非正常結(jié)束,成功匹配2項,scanf返回值為2.第15頁Scanf函數(shù)與輸入緩沖區(qū)在輸入數(shù)據(jù)時,實際上并不是輸入一個字符就讀入一個變量而是在鍵入一行字符并按回車鍵之后,才被讀入變量.這一行字符先放在一個緩沖區(qū)中,然后按scanf函數(shù)格式說明符要求從緩沖區(qū)中讀取數(shù)據(jù)到變量中.
假如輸入數(shù)據(jù)多于一個scanf函數(shù)所要求個數(shù),余下數(shù)據(jù)能夠被下一個scanf函數(shù)接著使用.
例:第16頁main(){inta,b,c,d,e,f;scanf(“%d%d”,&a,&b);scanf(“%d%d”,&c,&d);scanf(“%d%d”,&e,&f);printf(“a=%d,b=%d,c=%d,d=%d,e=%d,f=%d”,a,b,c,d,e,f);}一次運行結(jié)果:1224364860(回車)7284(回車)a=12,b=24,c=36,d=48,e=60,f=72//84沒有使用第17頁Scanf函數(shù)使用小結(jié):Scanf函數(shù)從輸入數(shù)據(jù)流中接收非空字符,再轉(zhuǎn)換成格式項描述格式,傳送到與格式項對應(yīng)地址中去.依據(jù)格式字符含義從輸入流中取得數(shù)據(jù),當(dāng)輸入流中數(shù)據(jù)類型與格式字符要求不符合時,就認(rèn)為一個數(shù)據(jù)項結(jié)束.依據(jù)格式項中指定域?qū)挾确指舫鰯?shù)據(jù)項依據(jù)用分隔符來讀取數(shù)據(jù)項scanf(格式控制參數(shù),地址1,地址2,……);scanf格式參數(shù)有兩種成份:格式說明項和輸入分隔符;scanf是一個函數(shù),它有一個返回值.這個返回值就是成功匹配項數(shù).scanf函數(shù)在執(zhí)行中碰到下面兩種情況后結(jié)束(停頓):格式參數(shù)中格式項用完-----正常結(jié)束;發(fā)生格式項與輸入域不匹配時---非正常結(jié)束;第18頁getchar與putchar函數(shù)第19頁getchar函數(shù):
從終端上讀入一個字符;Putchar函數(shù):
將字符變量中字符輸出到屏幕上,有一個字符型變量.使用方法:charc;c=getchar();putchar(c);第20頁例:main(){charch1,ch2,ch3;ch1=getchar();ch2=getchar();ch3=getchar();if(ch1>=‘a(chǎn)’&&ch1<=‘z’)ch1=ch1-32;//小寫轉(zhuǎn)換成大寫
if(ch2>=‘a(chǎn)’&&ch2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)貿(mào)英文合同范例
- 2025年玉樹貨車上崗證理論模擬考試題庫
- 中信銀行抵押合同范本
- 代為追償服務(wù)合同范本
- 綿陽水下安裝拆除施工方案
- 倉庫保管合同范本
- 修路建房合同范本
- 書籍稿件出版合同范本
- 農(nóng)村宅基地分割合同范本
- 勘查委托合同范本
- 美術(shù)基礎(chǔ)試題庫含答案
- 2024年4月自考05424現(xiàn)代設(shè)計史試題
- 2023版馬原專題課件:專題一馬克思主義觀;專題二辯證唯物主義世界觀
- 鄉(xiāng)村研學(xué)旅行方案
- 《養(yǎng)老機(jī)構(gòu)認(rèn)知障礙照護(hù)專區(qū)設(shè)置與服務(wù)規(guī)范》
- 貨幣流通的形式和層次課件
- DLT 5630-2021 輸變電工程防災(zāi)減災(zāi)設(shè)計規(guī)程-PDF解密
- 輸電線路安全施工培訓(xùn)
- 梅毒螺旋體抗體膠體金法檢測試劑條生產(chǎn)工藝的優(yōu)化
- 降低非計劃性拔管的發(fā)生率課件
- 2024年湖南中職學(xué)校語文普測備考試題庫(濃縮500題)
評論
0/150
提交評論