版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章格式化輸入/輸出
本章要點(diǎn)printf函數(shù)scanf函數(shù)輸入/輸出系統(tǒng)組成系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)硬件系統(tǒng)CPU控制器運(yùn)算器輸入設(shè)備(鼠標(biāo)、鍵盤、手寫筆、MIC等)輸出設(shè)備(顯示器、繪圖儀、打印機(jī)等)存儲(chǔ)器內(nèi)存儲(chǔ)器(RAM)外存儲(chǔ)器(軟盤、硬盤、光盤)觸摸屏“現(xiàn)代計(jì)算機(jī)之父”-馮·諾依曼從20世紀(jì)初,物理學(xué)和電子學(xué)科學(xué)家們就在爭(zhēng)論計(jì)算機(jī)該采用什么樣的結(jié)構(gòu)人們習(xí)慣十進(jìn)制計(jì)數(shù),所以研制模擬計(jì)算機(jī)的呼聲很高20世紀(jì)30年代美籍匈牙利科學(xué)家馮·諾依曼大膽地提出,拋棄十進(jìn)制,采用二進(jìn)制作為數(shù)字計(jì)算機(jī)的數(shù)制基礎(chǔ)同時(shí)提出程序存儲(chǔ)的思想(預(yù)先編制計(jì)算程序,然后讓計(jì)算機(jī)來按照程序事前制定的計(jì)算順序來執(zhí)行數(shù)值計(jì)算工作)該思想后來用于現(xiàn)代計(jì)算機(jī)(馮·諾依曼式計(jì)算機(jī))的設(shè)計(jì)中,世界首臺(tái)馮·諾依曼式計(jì)算機(jī)EDVAC(1949年)計(jì)算機(jī)基本結(jié)構(gòu)——馮氏結(jié)構(gòu)3.1printf()函數(shù)intprintf(“formatstring”,expr1,expr2,…);formatstring:格式串,“”,包含:普通字符:(哪些?)原樣輸出占位符:以%開頭的轉(zhuǎn)換說明(conversionspecification),說明輸出數(shù)據(jù)在格式串中的位置和格式,輸出時(shí)替換為對(duì)應(yīng)expr值轉(zhuǎn)換說明符:%后字母,如d、f。expr可以是常量、變量或者表達(dá)式。printf("theareais%f\ntheperimeteris%f",PI*radius*radius,2*PI*radius);3.1printf()函數(shù)占位符應(yīng)與要輸出的值配對(duì):數(shù)量匹配、格式匹配編譯器不檢查匹配問題錯(cuò)誤:inti;floatf;Toomanyconversionspecifications: printf("%d%d\n",i);Toofewconversionspecifications: printf("%d\n",i,j);incorrectconversionspecificationsprintf(“%f%d\n”,i,f);3.1.1轉(zhuǎn)換說明格式:%m.pX或%-m.pX%:格式說明起始符號(hào),不可缺少X為轉(zhuǎn)換說明符把內(nèi)存中二進(jìn)制轉(zhuǎn)換成相應(yīng)格式-、m和p皆可選,m,p為整數(shù),-:左對(duì)齊輸出,省略則右對(duì)齊輸出m:最小域?qū)挘ㄝ敵鲰?xiàng)所占的最少字符數(shù)),不足補(bǔ)空,超出擴(kuò)展p:精度與X有關(guān),eg輸出實(shí)數(shù)的小數(shù)位數(shù),缺省為6轉(zhuǎn)換說明符d:把待輸出數(shù)據(jù)從二進(jìn)制轉(zhuǎn)換成十進(jìn)制int型,%o(八進(jìn)制數(shù)),%x(十六進(jìn)制數(shù))f:把待輸出數(shù)據(jù)從二進(jìn)制轉(zhuǎn)換成十進(jìn)制(小數(shù)形式)float型實(shí)數(shù)%f:不指定寬度,整數(shù)部分全部輸出并輸出6位小數(shù)。%-m.pf:輸出共占m列,其中有p位小數(shù),如數(shù)值寬度小于m右端補(bǔ)空格。%m.pf:輸出共占m列,其中有p位小數(shù),如數(shù)值寬度小于m左端補(bǔ)空格。
轉(zhuǎn)換說明符e:以指數(shù)形式輸出實(shí)數(shù):%e:數(shù)字部分(又稱尾數(shù))輸出6位小數(shù)。%m.pe和%-m.pe:m、p和”-”字符含義與前相同。p:小數(shù)位數(shù),m:整個(gè)輸出數(shù)據(jù)所占的寬度。g:自動(dòng)選f格式或e格式中較短的一種輸出,且不輸出無意義的零。轉(zhuǎn)換說明符c:char,輸出字符s:string,輸出字符串%ms:輸出占m列,如字符串長(zhǎng)于m,將字符串全部輸出;若串長(zhǎng)小于m,則左補(bǔ)空格%-ms:字符串向左靠,右補(bǔ)空格%m.ps:輸出占m列,但只取字符串中左端(前)p個(gè)字符。右對(duì)齊,左補(bǔ)空。如果p>m,則自動(dòng)取p值,即保證p個(gè)字符正常輸出。%-m.ps:左對(duì)齊,右補(bǔ)空。#include<stdio.h>intmain(void){ inti; floatx; i=40; x=839.21f; printf("|%d|%5d|%-5d|%5.3d|\n",i,i,i,i); printf("|%10.3f|%10.3e|%-10g|\n",x,x,x); return0;}轉(zhuǎn)義序列一些特殊符號(hào)(非打印字符,不可見)沒有專用符號(hào)表示,用轉(zhuǎn)移序列表示‘\’:轉(zhuǎn)義字符\n\t\b\aprintf("Item\tUnit\tPurchase\n\tPrice\tDate\n");3.2scanf()函數(shù)格式:scanf(“format
string”,地址列表);formatstring:[普通字符]與轉(zhuǎn)換說明%X(d,i,o,x,f,c,s),地址列表:變量地址列表,用“&”取址輸入多個(gè)數(shù)據(jù),一般以空格、TAB、回車鍵作為分隔符(不需要在格式控制串中指明)格式符之間用其它字符分隔,則輸入時(shí)也用該分隔符%c:輸入字符,如輸入血型,A、B,性別,M(男),F(xiàn)(女),空格或其它字符作為有效字符輸入%s:輸入字符串,比如AB型,名字tom,mike,遇空格、TAB、回車表示結(jié)束scanf(“%s”,university);universityof……#include<stdio.h>voidmain() {intnum; scanf("%d",&num);printf("%d\n",num); }地址列表為變量的地址,用“&”取址#include<stdio.h> voidmain(){intnum1,num2;scanf(“%d%d”,&num1,&num2);//兩個(gè)%d之間無分隔符printf("%d\t%d\n",num1,num2);}輸入多個(gè)數(shù)據(jù),一般以空格、TAB、回車鍵作為分隔符#include<stdio.h>voidmain() {intnum1,num2;scanf("%d,%d",&num1,&num2);printf("%d\t%d\n",num1,num2);}程序輸出結(jié)果:注意輸入時(shí)避免如下錯(cuò)誤:格式符之間用其它字符分隔,則輸入時(shí)也以同樣字符分隔#include<stdio.h>voidmain(){charch;printf("請(qǐng)輸入一個(gè)字符:");scanf("%c",&ch); printf("你輸入的字符是:%c\n",ch);}輸入字符什么場(chǎng)合用呢?輸入性別、血型、繼續(xù)有否,Y或N【思考】以下程序應(yīng)如何輸入?#include<stdio.h>voidmain(){ charch1,ch2; scanf("%c%c",&ch1,&ch2); printf("ch1=%c,ch2=%c\n",ch1,ch2);}正確輸入后的程序結(jié)果顯示如上圖:【思考】產(chǎn)生右圖結(jié)果的原因是什么?%c:空格或其它字符作為有效字符輸入#include<stdio.h>voidmain(){charstr[10];printf("請(qǐng)輸入一個(gè)字符串");scanf("%s",str);printf("你輸入的字符串是%s\n",str);}輸入字符串#include<stdio.h>voidmain() {floatnum1,num2;scanf("%f%f”,&num1,&num2);printf("num1=%f\n",num1);printf("num1=%f\tnum2=%f\n",num1,num2);}輸入浮點(diǎn)數(shù)scanf(“%.2f”,&num1);scanf(“%.pf”,&a);
不合法輸入時(shí)不能規(guī)定精度,程序是不能控制操作它的人來輸入數(shù)據(jù)精度。scanf(“%pd”,&a);合法溫故而知新——printf()函數(shù)intprintf(“formatstring”,expr1,expr2,…);expr可以是常量、變量或者表達(dá)式。formatstring:普通字符:原樣輸出占位符(轉(zhuǎn)換說明):以%開頭,輸出時(shí)替換為對(duì)應(yīng)expr值溫故而知新——轉(zhuǎn)換說明格式:%m.pX或-%m.pXX為轉(zhuǎn)換說明符-、m和p皆可選,m,p為整數(shù),-:左對(duì)齊輸出,省略則右對(duì)齊輸出m:最小域?qū)挘ㄝ敵鲰?xiàng)所占的最少字符數(shù)),不足補(bǔ)空,超出擴(kuò)展p:精度與X有關(guān),eg輸出實(shí)數(shù)的小數(shù)位數(shù),缺省為6溫故而知新——轉(zhuǎn)換說明符d:輸出十進(jìn)制int型,%o(八進(jìn)制數(shù)),%x(十六進(jìn)制數(shù))f:輸出十進(jìn)制(小數(shù)形式)float型實(shí)數(shù)e:以指數(shù)形式輸出實(shí)數(shù)g:自動(dòng)選f格式或e格式中較短的一種輸出。c:char,輸出字符s:string,輸出字符串溫故而知新——scanf()函數(shù)格式:scanf(“formatstring”,addrlist);formatstring:一般不含普通字符addrlist:&取地址%與&配對(duì):數(shù)量配對(duì),類型配對(duì)輸入多個(gè)數(shù)據(jù)分隔:formatstring沒指定分隔符(默認(rèn)):以空格、TAB、回車鍵作為分隔符scanf(“%d%d%d”,&y,&m,&d);——20120925formatstring明確指定分隔符,則輸入時(shí)也用該分隔符,scanf(”%d-%d-%d”,&y,&m,&d);——2012-09-25%c:空格或其它字符作為有效字符輸入,%s:遇空格、TAB、回車表示結(jié)束%s:遇空格、TAB、回車表示結(jié)束#include<stdio.h>voidmain(void){ charname[20]; printf(“What’syourname?\n”); scanf(“%s”,name); printf(“Mynameis%s\n”,name); return0;}scanf的工作方式模式匹配:輸入串格式串%與&配對(duì):數(shù)量配對(duì),類型配對(duì)%d%f%c1)整數(shù),2)實(shí)數(shù),3)字符匹配成功,讀入數(shù)據(jù)項(xiàng),并繼續(xù)處理格式串不成功,不再處理格式串的后續(xù)部分%d%f%c23fUestc……把當(dāng)前讀入字符f退回到輸入緩沖輸入緩沖23dUestc……scanf(“%d%f%c”,…);產(chǎn)生鍵盤中斷(等待鍵盤輸入)鍵入緩存匹配23dUestc……同一程序所有讀入共享讀入不成功退回字符#include<stdio.h>intmain(){ inta=0; charb; printf("Enteranumber!\n"); scanf("%d",&a); scanf("%c",&b); printf("i=%d\tc=%c\n\n",i,c); return0;}//輸入23f//不用輸入scanf的工作方式30scanf("%d%d%f%f",&i,&j,&x,&y);輸入:[空格]1-20.3-4.0e3¤(¤:換行符)scanf處理輸入如下:%d.讀入1,再讀入-,-不屬于整數(shù),退回,存1到i%d.存–20到j(luò),退回
.%f.存0.3到x,退回-%f.存–4.0×103到y(tǒng)退回?fù)Q行溫故而知新——printf()函數(shù)intprintf(“formatstring”,expr1,expr2,…);expr可以是常量、變量或者表達(dá)式。formatstring:普通字符:原樣輸出占位符(轉(zhuǎn)換說明):以%開頭,輸出時(shí)替換為對(duì)應(yīng)expr值占位符與表達(dá)式匹配數(shù)量匹配類型匹配溫故而知新——轉(zhuǎn)換說明格式:%m.pX或%-m.pXX為轉(zhuǎn)換說明符-、m和p皆可選,m,p為整數(shù),-:左對(duì)齊輸出,省略則右對(duì)齊輸出m:最小域?qū)挘ㄝ敵鲰?xiàng)所占的最少字符數(shù)),不足補(bǔ)空,超出擴(kuò)展p:精度與X有關(guān),eg輸出實(shí)數(shù)的小數(shù)位數(shù),缺省為6溫故而知新——轉(zhuǎn)換說明符d:輸出十進(jìn)制int型,%o(八進(jìn)制數(shù)),%x(十六進(jìn)制數(shù))f:輸出十進(jìn)制(小數(shù)形式)float型實(shí)數(shù)e:以指數(shù)形式輸出實(shí)數(shù)g:自動(dòng)選f格式或e格式中較短的一種輸出。c:char,輸出字符s:string,輸出字符串溫故而知新——scanf()函數(shù)格式:scanf(“formatstring”,addrlist);formatstring:一般不含普通字符addrlist:&取地址%與&配對(duì):數(shù)量配對(duì),類型配對(duì)輸入多個(gè)數(shù)據(jù)分隔:formatstring沒指定分隔符(默認(rèn)):以空格、TAB、回車鍵作為分隔符scanf(“%d%d%d”,&y,&m,&d);——20120925formatstring明確指定分隔符,則輸入時(shí)也用該分隔符,scanf(”%d-%d-%d”,&y,&m,&d);——2012-09-25%c:空格或其它字符作為有效字符輸入%s:遇空格、TAB、回車表示結(jié)束溫故而知新——scanf的工作方式模式匹配:數(shù)量,類型匹配%與&Scanf(“%d%f%c”,&a,&b,&c)輸入串與格式串(占位符)“%d%f%c”輸入串:1)整數(shù),2)實(shí)數(shù),3)字符匹配成功讀入數(shù)據(jù)項(xiàng)不成功停止處理格式串后續(xù)部分當(dāng)前讀入字符退回輸入緩沖海倫-秦九韶公式 a,b,c:三角形三邊長(zhǎng) s:半周長(zhǎng)#include<math.h>
sqrt():開根運(yùn)算程序練習(xí)1——“三斜求積術(shù)”海倫-秦九韶公式#include<stdio.h>#include<math.h>intmain(){ floata,b,c,s,area;
printf("Enterthelengthsofedgesoftriangle.\n");
scanf("%f%f%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%f\n",area); return0;}程序練習(xí)1——“三斜求積術(shù)”常用庫函數(shù)C語言編譯器提供了許多基本的、常用的功能,以函數(shù)形式分別保存在不同的文件中供程序員使用。stdio.h:提供文件I/O處理功能,如:printf,scanf等。string.h:提供字符串處理功能,如:islower,strcat,strcmp,strlen等。math.h:提供常用數(shù)學(xué)公式,如:sin,log,sqrt等time.h:提供時(shí)間、日期功能,如:timegraphics.h:提供圖形功能,包括各種繪制點(diǎn)、線、圓、方和填色等的函數(shù)alloc.h:提供動(dòng)態(tài)存儲(chǔ)分配控制臺(tái)程序沒有獨(dú)立窗口,一般在命令行運(yùn)行。輸入輸出通過標(biāo)準(zhǔn)IO進(jìn)行,不象界面程序可以通過鼠標(biāo)點(diǎn)擊進(jìn)行操作。一般后臺(tái)運(yùn)行的程序可作為控制臺(tái)應(yīng)用程序。return后程序結(jié)束,自動(dòng)關(guān)閉讓計(jì)算機(jī)等待輸入:scanf();getchar();system(“pause”);#include<stdlib.h>system(“pause”)#include<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度電子合同法律效力認(rèn)定及證據(jù)保全操作規(guī)程3篇
- 二零二五年度汽車銷售與售后服務(wù)咨詢合同2篇
- 二零二五年鋼筋制作與安裝勞動(dòng)合同規(guī)范3篇
- 二零二五版企業(yè)品牌形象策劃執(zhí)行合同3篇
- 二零二五年度工傷事故賠償協(xié)議及后續(xù)心理咨詢服務(wù)合同6篇
- 二零二五年度電梯產(chǎn)品研發(fā)與創(chuàng)新基金投資合同3篇
- 二零二五年度蜜蜂養(yǎng)殖環(huán)境監(jiān)測(cè)與改善合同2篇
- 小麥種子繁育生產(chǎn)合同(2篇)
- 二零二五年電子商務(wù)SET協(xié)議安全技術(shù)實(shí)施合同3篇
- 二零二五年智能工廠生產(chǎn)過程監(jiān)控合同樣本3篇
- 2024年采購(gòu)代發(fā)貨合作協(xié)議范本
- 2024年業(yè)績(jī)換取股權(quán)的協(xié)議書模板
- 顳下頜關(guān)節(jié)疾?。谇活M面外科學(xué)課件)
- 工業(yè)自動(dòng)化設(shè)備維護(hù)保養(yǎng)指南
- 2024人教新版七年級(jí)上冊(cè)英語單詞英譯漢默寫表
- 《向心力》參考課件4
- 2024至2030年中國(guó)膨潤(rùn)土行業(yè)投資戰(zhàn)略分析及發(fā)展前景研究報(bào)告
- 2024年深圳中考數(shù)學(xué)真題及答案
- 土方轉(zhuǎn)運(yùn)合同協(xié)議書
- Module 3 Unit 1 Point to the door(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(三起)英語三年級(jí)上冊(cè)
- 智能交通信號(hào)燈安裝合同樣本
評(píng)論
0/150
提交評(píng)論