版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C輸入輸出函數(shù)本節(jié)主要介紹TurboC2.0標(biāo)準(zhǔn)輸入輸出函數(shù)和文件的輸入輸出函數(shù)。通過本節(jié)的學(xué)習(xí)可以使讀者掌握TurboC2.0的屏幕輸出、鍵盤輸入輸出以及磁盤文件的讀寫函數(shù),并能開始進(jìn)行一些簡(jiǎn)單的程序的編寫。控制流程語句主要包括:條件語句、循環(huán)語句和開關(guān)語句。標(biāo)準(zhǔn)輸入輸出函數(shù)格式化輸入輸出函數(shù)TurboC2.0標(biāo)準(zhǔn)庫(kù)提供了兩個(gè)控制臺(tái)格式化輸入、輸出函數(shù)printf()和scanf(),這兩個(gè)函數(shù)可以在標(biāo)準(zhǔn)輸入輸出設(shè)備上以各種不同的格式讀寫數(shù)據(jù)。printf()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫數(shù)據(jù);scanf()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上讀數(shù)據(jù)。下面詳細(xì)介紹這兩個(gè)函數(shù)的用法。一、prin
2、tf()函數(shù)printf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時(shí)經(jīng)常會(huì)用到此函數(shù)。printf()函數(shù)的調(diào)用格式為printf(格式化字符串其中格式化字符串包括兩部分內(nèi)容信息。在編寫程序時(shí)經(jīng)常會(huì)用到此函數(shù)。printf()函數(shù)的調(diào)用格式為printf(格式化字符串其中格式化字符串包括兩部分內(nèi)容字符將按原樣輸出;另一部分是格式化規(guī)定字符規(guī)定字符,用來確定輸出內(nèi)容格式。參量表是需要輸出的一系列參數(shù)所說明的輸出參數(shù)個(gè)數(shù)一樣多,各參數(shù)之間用將會(huì)出現(xiàn)意想不到的錯(cuò)誤。1.格式化規(guī)定符TurboC2.0提供的格式化規(guī)定符如下DDDDDDDDDDDDDDDDDDDDDD
3、DDDD,參量表);:一部分是正常字符,以%開始,后跟一個(gè)或幾個(gè),其個(gè)數(shù)必須與格式化字符串,分開,且順序一一對(duì)應(yīng),這些否則作用符號(hào)作用DDDDDDDDDDDDDDDDDDDDDDDDDD%d十進(jìn)制有符號(hào)整數(shù)%u十進(jìn)制無符號(hào)整數(shù)%f浮點(diǎn)數(shù)%s字符串%c單個(gè)字符%p指針的值%e指數(shù)形式的浮點(diǎn)數(shù)%x,%X無符號(hào)以十六進(jìn)制表示的整數(shù)%0無符號(hào)以八進(jìn)制表示的整數(shù)%g自動(dòng)選擇合適的表示法DDDDDDDDDDDDDDDDDDDDDDDDDD說明:(1).可以在%和字母之間插進(jìn)數(shù)字表示最大場(chǎng)寬。例如%3d表示輸出3位整型數(shù),不夠3位右對(duì)齊。%9.2f例如%3d表示輸出3位整型數(shù),不夠3位右對(duì)齊。%9.2f表示
4、輸出場(chǎng)寬為9的浮點(diǎn)數(shù)其中小數(shù)位為2,整數(shù)位為6,整數(shù)位為6,齊。小數(shù)點(diǎn)占一位,不夠9位右對(duì)齊。%8s表示輸出8個(gè)字符的字符串不夠齊。小數(shù)點(diǎn)占一位,不夠9位右對(duì)齊。%8s表示輸出8個(gè)字符的字符串不夠8個(gè)字符右對(duì)如果字符串的長(zhǎng)度、或整型數(shù)位數(shù)超過說明的場(chǎng)寬將按其實(shí)際長(zhǎng)度輸出。但對(duì)浮點(diǎn)數(shù),若整數(shù)部分位數(shù)超過了說明的整數(shù)位寬度但對(duì)浮點(diǎn)數(shù),若整數(shù)部分位數(shù)超過了說明的整數(shù)位寬度將按實(shí)際整數(shù)位輸出若小數(shù)部分位數(shù)超過了說明的小數(shù)位寬度,若小數(shù)部分位數(shù)超過了說明的小數(shù)位寬度,則按說明的寬度以四舍五入輸出。另外,若想在輸出值前加一些0,就應(yīng)在場(chǎng)寬項(xiàng)前加個(gè)0。例如另外,若想在輸出值前加一些0,就應(yīng)在場(chǎng)寬項(xiàng)前加個(gè)0。
5、例如%04d表示在輸出一個(gè)小于4位的數(shù)值時(shí)將在前面nn換行補(bǔ)0使其總寬度為4位。如果用浮點(diǎn)數(shù)表示字符或整型量的輸出格式,如果用浮點(diǎn)數(shù)表示字符或整型量的輸出格式,小數(shù)點(diǎn)后的數(shù)字nn換行nn換行代表最大寬度小數(shù)點(diǎn)前的數(shù)字代表最小寬度。例如:例如:%6.9s表示顯示一個(gè)長(zhǎng)度不小于6且不大于9的字符串。nn換行nn換行若大于9,則9個(gè)字符以后的內(nèi)容將被刪除。數(shù)。(2)可以在%和字母之間加小寫字母l,表示輸出的是長(zhǎng)型數(shù)。(2)可以在%和字母之間加小寫字母l,表示輸出的是長(zhǎng)型例如%ld表示輸出long整數(shù)%lf表示輸出%lf表示輸出double浮點(diǎn)數(shù)一個(gè)(3)可以控制輸出左對(duì)齊或右對(duì)齊即在%一個(gè)(3)可以
6、控制輸出左對(duì)齊或右對(duì)齊即在%和字母之間加入號(hào)可說明輸出為左對(duì)齊否則為右對(duì)齊。說明輸出為左對(duì)齊否則為右對(duì)齊。例如%-7d表示輸出7位整數(shù)左對(duì)齊%-10s表示輸出例如%-7d表示輸出7位整數(shù)左對(duì)齊%-10s表示輸出10個(gè)字符左對(duì)齊nn換行nn換行2.一些特殊規(guī)定字符DDDDDDDDDDDDDDDDDDDDDDDDDD作用字符作用DDDDDDDDDDDDDDDDDDDDDDDDDDff清屏并換頁(yè)r回車tTab符xhh表示一個(gè)ASCIIDO16進(jìn)表示,其中hh是1到2個(gè)16進(jìn)制數(shù)DDDDDDDDDDDDDDDDDDDDDDDDDD由本節(jié)所學(xué)的printf()函數(shù),并結(jié)合上一節(jié)學(xué)習(xí)的數(shù)據(jù)類型編制下面的程
7、序,以加深對(duì)TurboC2.0數(shù)據(jù)類型的了解。例1#include#includeintmain()charc,s20,*p;inta=1234,*i;floatf=3.141592653589;doublex=0.12345678987654321;p=Howdoyoudo;strcpy(s,Hello,Comrade);*i=12;c=x41;printf(a=%dn,a);/*printf(a=%dn,a);/*結(jié)果輸出十進(jìn)制整數(shù)a=1234*/printf(a=%6dn,a);/*結(jié)果輸出6位十進(jìn)制數(shù)a=1234*/printf(a=%06dn,a);/*結(jié)果輸出6位十進(jìn)制數(shù)a=001
8、234*/printf(a=%2dn,a);/*a超過2位,按實(shí)際值輸出a=1234*/printf(*i=%4dn,*i);/*輸出4位十進(jìn)制整數(shù)*i=12*/printf(*i=%-4dn,*i);/*輸出左對(duì)齊4位十進(jìn)制整數(shù)*i=12*/printf(i=%pn,i);/*輸出地址i=06E4*/printf(f=%fn,f);/*輸出浮點(diǎn)數(shù)f=3.141593*/printf(f=6.4fn,f);/*輸出6位其中小數(shù)點(diǎn)后4位的浮點(diǎn)數(shù)f=3.1416*/printf(x=%lfn,x);/*輸出長(zhǎng)浮點(diǎn)數(shù)x=0.123457*/printf(x=%18.16lfn,x);/*輸出1800
9、0000016位的長(zhǎng)浮點(diǎn)ff清屏并換頁(yè)x=0.1234567898765432*/printf(c=%cn,c);/*輸出字符c=A*/printf(c=%xn,c);/*輸出字符的ASCII碼值c=41*/printf(s=%sn,s);/*輸出數(shù)組字符串s=Hello,Comrade*/printf(s=%6.9sn,s);/*輸出最多9000000串s=Hello,Co*/printf(s=%pn,s);/*輸出數(shù)組00串首00地址s=FFBE*/printf(*p=%sn,p);/*輸出指針00串p=Howdoyoudo*/printf(p=%pn,p);/*輸出指針的值p=0194*
10、/getch();retunr0;上面結(jié)果中的地址值在不同計(jì)算機(jī)上可能不同。例1.中第一條語句#includestdio.h的含義是調(diào)用另一個(gè)文件stdio.h,這是一個(gè)頭文件,其中包括全部標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)的數(shù)據(jù)類型定義和函數(shù)說明。TurboC2.0對(duì)每個(gè)庫(kù)函數(shù)便用的變量及函數(shù)類型都已作了定義與說明,放在相應(yīng)#include*.h或頭文件*.#include*.h或#include*.h語句調(diào)用相應(yīng)的頭文件,語句調(diào)用相應(yīng)的頭文件,以供連接。若沒有用此語句說明,則連接時(shí)將會(huì)出現(xiàn)錯(cuò)誤。二、scanf()函數(shù)將會(huì)出現(xiàn)錯(cuò)誤。二、scanf()函數(shù)scanf()函數(shù)是格式化輸入函數(shù)取輸入的信息。,它從
11、標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀其調(diào)用格式為scanf(格式化字符串scanf(格式化字符串,地址表);ff清屏并換頁(yè)ff清屏并換頁(yè)格式化字符串包括以下三類不同的字符1.格式化說明符:格式化說明符與1.格式化說明符:格式化說明符與printf()函數(shù)中的格式說明ff清屏并換頁(yè)ff清屏并換頁(yè)符基本相同。2.空白字符:空白字符會(huì)使2.空白字符:空白字符會(huì)使scanf()函數(shù)在讀操作中略去輸入ff清屏并換頁(yè)ff清屏并換頁(yè)中的一個(gè)或多個(gè)空白字符。3.非空白字符:一個(gè)非空白字符會(huì)使3.非空白字符:一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀入時(shí)剔ff清屏并換頁(yè)ff清屏并換頁(yè)除掉與這個(gè)非空白字符相同的字符。地址表是需要
12、讀入的所有變量的地址,地址表是需要讀入的所有變量的地址,而不是變量本身。這與printf()函數(shù)完全不同,要特別注意。各個(gè)變量的地址之間同,分開。例2:main()inti,j;printf(i,j=?n);scanf(%d,%d,&i,&j);上例中的scanf()函數(shù)先讀一個(gè)整型數(shù),然后把接著輸入的逗號(hào)剔除掉,最后讀入另一個(gè)整型數(shù)。如果,這一特定字符沒有找到,scanf()函數(shù)就終止。若參數(shù)之間的分隔符為空格,則參數(shù)之間必須輸入一個(gè)或多個(gè)空格。說明:(1).對(duì)于字符串?dāng)?shù)組或字符串指針變量,由于數(shù)組名和指針變量名本身就是地址,因此使用scanf()函數(shù)時(shí),不需要在它們前面加上&操作符。例3m
13、ian()char*p,str20;/*從健盤輸入字符串*/scanf(%s,p);/*從健盤輸入字符串*/scanf(%s,str);scanf(%c,&c2);printf(c1is%c,c2is%c,c21,c2);printf(%sn,printf(%sn,(2).可以在格式化字符串中的個(gè)整數(shù)printf(%sn,printf(%sn,(2).可以在格式化字符串中的個(gè)整數(shù),表示任何讀操作中的最大位數(shù)。如例3中若規(guī)定只能輸入scanf()函數(shù)語句變?yōu)閟canf(%10s,程序運(yùn)行時(shí)一旦輸入字符個(gè)數(shù)大于后面的一個(gè)讀入函數(shù)即scanf(%s,實(shí)際使用當(dāng)使用多個(gè)main()str)就會(huì)從第sc
14、anf()函數(shù)時(shí)存在一個(gè)問題scanf()函數(shù)連續(xù)給多個(gè)字符變量輸入時(shí)p);/*向屏幕輸出字符串str);%各格式化規(guī)定符之間加入一10字符給字符串指針p,p);10,p就不再繼續(xù)讀入11個(gè)字符開始讀入。,下面舉例進(jìn)行說明則第一條*/,例如charc1,c2;charc1,c2;scanf(%c,&c1);),AB后回車運(yùn)行該程序,輸入一個(gè)字符A后回車(),AB后回車在執(zhí)行scanf(c,&cl)時(shí),給變量cl賦值A(chǔ),但回車符仍然留在緩沖區(qū)內(nèi)執(zhí)行輸入語句scanf(c,&c2)時(shí),變量c2輸出的是一空行,如果輸入那么輸出結(jié)果為:clisA,c2isB。要解決以上問題,可以在輸入函數(shù)前加入清除函
15、數(shù)fflush()(這個(gè)函數(shù)的使用方法將在本節(jié)最后講述)。修改以上程序變成:#includemain()charcl,c2;scanf(%c,&cl);fflush(stdin);scanf(%c,&c2);printf(clis%c,c2is%c,cl,c2);1.1.2非格式化輸入輸出函數(shù)非格式化輸入輸出函數(shù)可以由上面講述的標(biāo)準(zhǔn)格式化輸入輸出函數(shù)代替,但這些函數(shù)編譯后代碼少,相對(duì)占用內(nèi)存也小,從而提高了速度,同時(shí)使用也比較方便。下面分別進(jìn)行介紹。一、puts()和gets()函數(shù)puts()函數(shù)puts()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫字符串并換行,其調(diào)用格式為:puts(s);其中S為
16、字符串變量(字符串?dāng)?shù)組名或字符串指針)。puts()函數(shù)的作用與語printf(%sn,s)相同。例4:main()chars20,*f;/*定義字符串?dāng)?shù)組和指針變量*/strcpy(s,Hello!TurboC2.0);/*字符串?dāng)?shù)組變量賦值*/f=Thankyou;/*字符串指針變量賦值*/puts(s);puts(f);說明:.puts()函數(shù)只能輸出字符串,不能輸出數(shù)值或進(jìn)行格式變換。.可以將字符串直接寫入puts()函數(shù)中。如:puts(Hello,TurboC2.0);gets()函數(shù)gets()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取字符串直到回車結(jié)束,但回車符TOC o 1-5 h
17、z不屬于這個(gè)字符串。其調(diào)用格式為:gets(s);其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。gets(s)函數(shù)與scanf(s,&s)相似,但不完全相同,使用scanf(%s,&s)函數(shù)輸入字符串時(shí)存在一個(gè)問題,就是如果輸入了空格會(huì)認(rèn)為輸入字符串結(jié)束,空格后的字符將作為下一個(gè)輸入項(xiàng)處理,但gets()函數(shù)將接收輸入的整個(gè)字符串直到回車為止。例5main()chars20,*f;printf(Whatsyourname?n);gets(s);/*等待輸入字符串直到回車結(jié)束*/puts(s);/*將輸入的字符串輸出*/puts(Howoldareyou?);gets(f);puts(f);說
18、明:(1).gets(s)函數(shù)中的變量s為一字符串。如果為單個(gè)字符,編譯連接不會(huì)有錯(cuò)誤,但運(yùn)行后會(huì)出現(xiàn)Nullpointerasignmemt的錯(cuò)誤。ff清屏并換頁(yè)ff清屏并換頁(yè)二、putchar()、getch()、getche()和getchar()函數(shù)ff清屏并換頁(yè)ff清屏并換頁(yè)1.putchar()函數(shù),其調(diào)用格式為putchar(),其調(diào)用格式為putchar(ch);ff清屏并換頁(yè)其中ch為一個(gè)字符變量或常量。putchar()函數(shù)的作用等同于putchar()函數(shù)的作用等同于例6:printf(%c,ch);ff清屏并換頁(yè)ff清屏并換頁(yè)#includemain()/*定義字符變量*/*給字符變量賦值*/*輸出該字符*/*輸出字母B*/*直接用ASCII碼值輸出字母B*/charc:B*/c=B;putchar(c);putchar(x42);putchar(0 x42);從本例中的連續(xù)四個(gè)字符輸出函數(shù)語句可以分清字符變量的不同賦值方法。2.getch()、getche()和getchar()函數(shù)(1)getch()和get
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 染色師成果轉(zhuǎn)化模擬考核試卷含答案
- 道岔鉗工安全操作競(jìng)賽考核試卷含答案
- 腳輪制作工安全風(fēng)險(xiǎn)水平考核試卷含答案
- 醬鹵肉制品加工工操作管理評(píng)優(yōu)考核試卷含答案
- 纖維調(diào)施膠干燥工安全培訓(xùn)模擬考核試卷含答案
- 2025年太陽(yáng)能組件生產(chǎn)裝備項(xiàng)目合作計(jì)劃書
- 2025年鍍鉻板(卷)合作協(xié)議書
- 中國(guó)垃圾填埋場(chǎng)治理行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 信息安全與加密教學(xué)課件
- 2025年青海省西寧市中考生物真題卷含答案解析
- 大數(shù)據(jù)安全技術(shù)與管理
- 2026年中小學(xué)校長(zhǎng)校園安全管理培訓(xùn)考試題及答案
- 2025年山東建筑大學(xué)思想道德修養(yǎng)與法律基礎(chǔ)期末考試模擬題必考題
- 江西省贛州地區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末英語試(含答案)
- 2025年香港滬江維多利亞筆試及答案
- 述職報(bào)告中醫(yī)
- 患者身份識(shí)別管理標(biāo)準(zhǔn)
- 松下Feeder維護(hù)保養(yǎng)教材
- 汽車融資貸款合同范本
- 《陸上風(fēng)電場(chǎng)工程概算定額》NBT 31010-2019
評(píng)論
0/150
提交評(píng)論