版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)
2023翻轉(zhuǎn)課堂實(shí)用教程第4章輸入輸出函數(shù)格式化輸入函數(shù)scanf()和格式化輸出函數(shù)printf()4.1字符/字符串輸入輸出函數(shù)4.2
4.1格式化輸入函數(shù)scanf()和
格式化輸出函數(shù)printf()情形一情形二情形三從標(biāo)準(zhǔn)輸入設(shè)備(一般是鍵盤)輸入數(shù)據(jù)(包含整數(shù)、實(shí)數(shù)、字符等),并把結(jié)果輸出到終端(一般是屏幕)上從標(biāo)準(zhǔn)輸入設(shè)備輸入字符或字符串,并把結(jié)果顯示在終端上,建議使用字符輸入函數(shù)getchar()和字符串輸入函數(shù)gets()從文件中讀取數(shù)據(jù)(包含整數(shù)、實(shí)數(shù)、字符等),并把結(jié)果輸出到文件中使用格式化輸入函數(shù)scanf()和格式化輸出函數(shù)printf()使用字符輸出函數(shù)putchar()和字符串輸出函數(shù)puts()使用文件輸入函數(shù)fscanf()和文件輸出函數(shù)fprintf()選擇使用哪個(gè)函數(shù)?放到文件一章講解4.1.1格式化輸入函數(shù)scanf()scanf(格式控制字符串,變量地址列表)函數(shù)格式:函數(shù)功能:通過標(biāo)準(zhǔn)輸入設(shè)備(鍵盤、寫字板等),按照格式控制字符串中的格式要求為變量地址列表中的變量輸入數(shù)據(jù)變量地址列表串:變量地址列表由輸入項(xiàng)組成,兩個(gè)輸入項(xiàng)之間用逗號(hào)分隔,輸入項(xiàng)一般由地址符&和變量名組成,即:&變量名格式轉(zhuǎn)換說明符功能描述%d輸入一個(gè)十進(jìn)制整數(shù)%u輸入一個(gè)無(wú)符號(hào)十進(jìn)制整數(shù)%f輸入一個(gè)單精度實(shí)數(shù)%lf輸入一個(gè)雙精度實(shí)數(shù)%e,%E,%g,%G輸入一個(gè)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入%c輸入一個(gè)字符%s輸入一個(gè)字符串%o輸入一個(gè)八進(jìn)制整數(shù)%x,%X輸入一個(gè)十六進(jìn)制整數(shù)%*表示本輸入項(xiàng)只是讀入,但不賦給相應(yīng)變量例子PK例如:從鍵盤接收整數(shù)或?qū)崝?shù)例如:從鍵盤輸入數(shù)據(jù)方法inta=0,b=0,c=0;floatd=0,e=0;scanf("%d%d",&a,&b);//兩個(gè)%d之間無(wú)空格,輸入整數(shù)并賦值給變量a和bscanf("%d%d",&b,&c);//輸入兩個(gè)整數(shù)并分別賦值給b、cscanf("%dissmallerthan%d",&a,&b);scanf("%f,%f",&d,&e);//輸入兩個(gè)整數(shù)并分別賦值給d、e5.scanf("%f+%f",&d,&e);//輸入兩個(gè)整數(shù)并分
別賦值給d、e1.scanf("%d%d",&a,&b);//兩個(gè)%d之間無(wú)空格,輸入整數(shù)并賦值給變量a和b2.scanf("%d%d",&b,&c);//輸入兩個(gè)整數(shù)并分別賦值給c、d3.scanf("%dsmaller%d",&a,&b)4.scanf("%f,%f",&d,&e);//輸入兩個(gè)整數(shù)并分別賦值給c、d5.scanf("%f+%f",&d,&e);//輸入兩個(gè)整數(shù)并分別賦值給c、d輸入函數(shù)scanf()注意(1)格式控制字符串中多個(gè)格式轉(zhuǎn)換說明符之間沒有逗號(hào),輸入數(shù)據(jù)時(shí),通常使用空格鍵或者回車鍵來(lái)分隔數(shù)據(jù);格式轉(zhuǎn)換說明符之間有逗號(hào),輸入數(shù)據(jù)時(shí),一定要用逗號(hào)來(lái)分隔數(shù)據(jù)。(2)格式轉(zhuǎn)換說明符個(gè)數(shù)和類型必須與變量地址列表一一對(duì)應(yīng)。(3)*(抑制字符):表示本輸入項(xiàng)只是讀入,但不賦給相應(yīng)變量。(4)對(duì)于scanf(),輸入數(shù)據(jù)的格式要和控制字符串的格式保持一致,但對(duì)輸入數(shù)據(jù)之間的空格的處理比較寬松,并不要求空格數(shù)嚴(yán)格對(duì)應(yīng),多幾個(gè)少幾個(gè)無(wú)所謂,只要有空格就行。*抑制字符的用法案例4-1-1*(抑制字符)的用法案例4-1-1程序代碼:main(){ inta,b; scanf("%d%*d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}案例4-1-1,運(yùn)行結(jié)果:123456↙a=12,b=56第二個(gè)數(shù)對(duì)應(yīng)*,沒有賦值給變量例如:從鍵盤接收字符或字符串charm,n;charurl[30];//定義一個(gè)字符數(shù)組用來(lái)存儲(chǔ)字符串scanf("%c%c",&m,&n);//輸入一個(gè)字符,并賦值給變量letter2.scanf("%s",url);//輸入一個(gè)字符串,并賦值給變量url例如:從鍵盤輸入數(shù)據(jù)方法scanf("%c%c",&m&n);//輸入兩個(gè)字符,并賦值給變量letter2.scanf("%s",url);//輸入一個(gè)字符串,并賦值給數(shù)組變
量url。注意:1.scanf()讀取字符串時(shí)以空格為分隔,遇到空格就認(rèn)為當(dāng)前字符串結(jié)束了,所以無(wú)法讀取含有空格的字符串,解決辦法需要用到后面要講的gets()函數(shù)。2.一個(gè)%c只能接收一個(gè)字符,"%c%c"格式控制時(shí),在鍵盤輸入兩個(gè)連續(xù)的字符時(shí)不能有任何分隔符,否則,分隔符本身會(huì)被認(rèn)為是一個(gè)字符4.1.2格式化輸出函數(shù)printf()printf(<格式控制字符串>,<參數(shù)列表>)例如:printf(“i=%d,c=%c\n”,i,c)函數(shù)格式:函數(shù)功能:將輸出列表中的各個(gè)表達(dá)式的值按照格式控制字符串中對(duì)應(yīng)的格式輸出到標(biāo)準(zhǔn)輸出設(shè)備(顯示屏)格式說明的一般形式:%[標(biāo)志][輸出最小寬度m][.精度n][長(zhǎng)度]類型格式字符,其中方括號(hào)[]中的項(xiàng)為可選項(xiàng):(1)類型格式字符符號(hào)作用符號(hào)作用d十進(jìn)制有符號(hào)整數(shù)X、x無(wú)符號(hào)以十六進(jìn)制表示的整數(shù)u十進(jìn)制無(wú)符號(hào)整數(shù)o無(wú)符號(hào)以八進(jìn)制表示的整數(shù)f浮點(diǎn)數(shù)e指數(shù)形式的浮點(diǎn)數(shù)c單個(gè)字符g浮點(diǎn)數(shù),選用f或e格式中輸出寬度較短的一種格式s字符串p指針的值(2)標(biāo)志標(biāo)志意義標(biāo)志意義-結(jié)果左對(duì)齊,右邊填空格0指定數(shù)字前的空格用0填補(bǔ)+輸出符號(hào)(正號(hào)和負(fù)號(hào))
#對(duì)c、s、d、u類無(wú)影響對(duì)o類,輸出是時(shí)加前綴o
空格輸出值為正值,冠以空格,為負(fù)值冠以負(fù)號(hào)對(duì)x類,輸出是時(shí)加前綴0X對(duì)e、g、f類,當(dāng)結(jié)果有小數(shù)時(shí)才給出小數(shù)點(diǎn)4.1.2格式化輸出函數(shù)printf()用十進(jìn)制整數(shù)來(lái)表示輸出的最少位數(shù)。若實(shí)際位數(shù)多于寬度,則按實(shí)際位數(shù)輸出,若實(shí)際位數(shù)少于定義的寬度則補(bǔ)以空格或0。(3)最小輸出寬度:(4)精度以“.”開頭,后跟十進(jìn)制整數(shù)若實(shí)際位數(shù)大于所定義的精度位數(shù),則截去超過的部分。(5)長(zhǎng)度長(zhǎng)度格式符為h、l兩種h表示按短整型量輸出l表示按長(zhǎng)整型量輸出注意:(1)格式轉(zhuǎn)換說明符個(gè)數(shù)和類型必須與輸出列表一一對(duì)應(yīng)
。(2)格式控制字符串中可以有轉(zhuǎn)義字符和普通字符。轉(zhuǎn)義字符根據(jù)具體作用實(shí)現(xiàn)操作,普通字符原樣輸出。(3)修飾符m(正整數(shù)):指定輸出項(xiàng)所占的寬度,當(dāng)指定寬度小于實(shí)際寬度時(shí)按實(shí)際寬度輸出,當(dāng)指定寬度大于實(shí)際寬度時(shí)在前面用空格補(bǔ)足。(4)修飾符.n(正整數(shù)):指定輸出的實(shí)型數(shù)據(jù)的小數(shù)位數(shù)(四舍五入),系統(tǒng)默認(rèn)小數(shù)位數(shù)為6。(5)修飾符0(數(shù)字):指定數(shù)字前的空格用0填補(bǔ)。(6)修飾符-:指定輸出項(xiàng)的對(duì)齊方式,表示左對(duì)齊。案例案例4-1-2輸出類型格式符使用案例4-1-2程序代碼:main(){ floatc=12.44; inta=12,b=1234; printf("%.1f,%.2f,%.6f\n",c,c,c); printf("%4d,%4d\n",a,b); printf("%-4d,%-6d\n",a,b); printf("%04d,%06d\n",a,b);}案例4-1-2,運(yùn)行結(jié)果:12.4,12.44,12.44000012,123412,12340012,001234
4.2字符/字符串輸入輸出函數(shù)4.2.1getchar函數(shù)getchar();函數(shù)格式:函數(shù)功能:從標(biāo)準(zhǔn)輸入設(shè)備輸入一個(gè)字符注意:(1)該函數(shù)沒有參數(shù),函數(shù)的返回值是從輸入設(shè)備得到的字符。(2)從鍵盤上輸入數(shù)據(jù)通過回車鍵結(jié)束,送入緩沖區(qū),該函數(shù)從緩沖區(qū)中讀入一個(gè)字符賦給字符變量。(3)該函數(shù)也可以接收回車符。案例4-2-1無(wú)參數(shù)函數(shù)使用案例4-2-1程序代碼:main(){ charch1,ch2,ch; ch1=getchar(); ch2=getchar(); ch=getchar(); printf("ch1=%c,ch2=%c\n",ch1,ch2);printf("ch=%c\n",ch);}案例4-2-1,運(yùn)行結(jié)果輸入:x↙
y↙輸出:ch1=x,ch2=ch=y為什么?4.2.2putchar函數(shù)putchar(ch);函數(shù)格式:函數(shù)功能:向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符注意:(1)輸出字符型變量(2)輸出字符型或者整型常量(3)輸出轉(zhuǎn)義字符案例4-2-2putchar(ch)函數(shù)使用案例4-2-2程序代碼:main(){ putchar('\n'); putchar('\007');}案例4-2-2,運(yùn)行結(jié)果字符型、整型、轉(zhuǎn)義字符換行
響鈴4.2.3getche()和getch()
函數(shù)getche()沒有緩沖區(qū),輸入一個(gè)字符后會(huì)立即讀取,不用等待用戶按下回車鍵1、getche()函數(shù)2、getch()
函數(shù)getch()沒有緩沖區(qū),輸入一個(gè)字符后會(huì)立即讀取,但它沒有回顯3、getchar()、getche()和getch()的比較案例4-2-3getche()和getch()函數(shù)使用案例4-2-3程序代碼:main(){ charc=getch(); printf("c:%c\n",c); charc=getche(); printf("c:%c\n",c);}案例4-2-3,運(yùn)行結(jié)果函數(shù)緩沖區(qū)頭文件回顯適用平臺(tái)getchar()有stdio.h有Windows、Linux、MacOS等所有平臺(tái)getche()無(wú)conio.h有Windowsgetch()無(wú)conio.h無(wú)Windows輸入:@輸出:c:@輸入f↙輸出:fd:f4.2.4輸入字符串gets()是專用的字符串輸入函數(shù),它擁有scanf()不具備的特性1、gets()函數(shù)2、gets()和scanf()的主要區(qū)別案例4-2-4gets()函數(shù)使用案例4-2-4程序代碼:main(){ charname[20]={0},add[20]={0}; gets(name); printf("name:%s\n",name); gets(add); printf("add:%s\n",add);}案例4-2-4,運(yùn)行結(jié)果(1)scanf()讀取字符串時(shí)以空格為分隔,遇到空格就認(rèn)為當(dāng)前字符串結(jié)束了,所以無(wú)法讀取含有空格的字符串。(2)gets()認(rèn)為空格也是字符串的一部分,只有遇到回車鍵時(shí)才認(rèn)為字符串輸入結(jié)束,所以,不管輸入了多少個(gè)空格,只要不按下回車鍵,對(duì)gets()來(lái)說就是一個(gè)完整的字符串。也就是說,gets()能讀取含有空格的字符串,而scanf()不能。xiaoming↙name:xiaomingcenter↙add:center從控制臺(tái)讀取數(shù)據(jù)函數(shù)的比較注意(1)scanf()、getchar()、gets()是標(biāo)準(zhǔn)函數(shù),適用于所有平臺(tái);getche()和getch()不是標(biāo)準(zhǔn)函數(shù),只能用于Windows。scanf()是通用的輸入函數(shù),它可以讀取多種類型的數(shù)據(jù)。(2)getchar()、getche()和getch()是專用的字符輸入函數(shù),它們?cè)诰彌_區(qū)和回顯方面與scanf()有著不同的特性,是scanf()不能替代的。(3)gets()是專用的字符串輸入函數(shù),與scanf()相比,gets()的主要優(yōu)勢(shì)是可以讀取含有空格的字符串。(4)scanf()可以一次性讀取多份類型相同或者不同的數(shù)據(jù),getchar()、getc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院醫(yī)療意外合同范例
- 二手房買賣意向合同3篇
- 倉(cāng)儲(chǔ)物流鋪裝合同3篇
- 出版社校對(duì)專員勞動(dòng)合同3篇
- 企業(yè)短期貸款合同延期3篇
- 商業(yè)用房公司合同范例
- 住房權(quán)轉(zhuǎn)讓合同范例
- 晉中建筑沙盤制作合同范例
- 冷庫(kù)轉(zhuǎn)讓合同范例
- 征地修路合同范例
- 西師大版五年級(jí)上冊(cè)小數(shù)混合運(yùn)算題100道及答案
- 2022年7月國(guó)家開放大學(xué)本科《中國(guó)法律史》期末紙質(zhì)考試試題及答案
- 行政文秘筆試題
- 2024年部門年終工作總結(jié)參考(四篇)
- 主題四 第1課 節(jié)氣與我們的生活(教學(xué)設(shè)計(jì))教科版五年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)
- 二年級(jí)數(shù)學(xué)上冊(cè)口算天天練
- 肯耐珂薩題庫(kù)
- 2024國(guó)家開放大學(xué)電大本科《液壓氣動(dòng)技術(shù)》期末試題及答案
- 冷凝集素綜合征治療與護(hù)理研究進(jìn)展
- 商務(wù)服務(wù)機(jī)器人技術(shù)現(xiàn)狀與未來(lái)發(fā)展趨勢(shì)研究
- 工業(yè)物聯(lián)網(wǎng)(IIoT)行業(yè)發(fā)展全景調(diào)研與投資趨勢(shì)預(yù)測(cè)研究報(bào)告
評(píng)論
0/150
提交評(píng)論