




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三章格式化輸入輸出目錄/Contents數(shù)據(jù)格式化輸入函數(shù)scanf()數(shù)據(jù)格式化輸出函數(shù)printf()數(shù)據(jù)的輸入與輸出C語言無I/O語句,I/O操作由函數(shù)實(shí)現(xiàn),如printf、scanf函數(shù),這些函數(shù)定義在庫函數(shù)<stdio.h>中#include<stdio.h>變量可以從鍵盤獲得數(shù)據(jù)嗎?C語言如何從鍵盤獲取數(shù)據(jù)?可以,通過scanf函數(shù)格式:scanf(“格式控制符”,變量地址);功能:從鍵盤按格式讀取數(shù)據(jù),并賦給變量。取地址運(yùn)算符:&scanf(“%d”,&a);0x22fe48a問題的提出格式scanf(格式控制字符串,輸出項(xiàng)表列);scanf(“i=%f,j=%d",&a,&b);可以輸入若干任意類型的數(shù)據(jù)
函數(shù)名輸入數(shù)據(jù)地址表列普通字符格式說明格式化輸入scanf()非格式字符輸入數(shù)據(jù)以,分隔沒有時(shí)可以空格、Tab或回車分隔未加修飾的轉(zhuǎn)換字符在輸入流中被匹配的字符對應(yīng)參數(shù)的類型c任何字符,包括空白chard可選的有符號十進(jìn)制整數(shù)inti可選的有符號十進(jìn)制整數(shù)、八進(jìn)制整數(shù)或十六進(jìn)制整數(shù)intu可選的有符號十進(jìn)制整數(shù)unsignedo可選的有符號八進(jìn)制整數(shù),不需要前導(dǎo)0unsignedx,X可選的有符號十六進(jìn)制整數(shù),不允許前導(dǎo)0x或0Xunsignede,E,f,g,G可選的有符號浮點(diǎn)數(shù)floatpprintf()中的%p所產(chǎn)生的通常是無符號十六進(jìn)制整數(shù)voidscanf()的格式轉(zhuǎn)換字符m表示數(shù)據(jù)占用的寬度l加在d、o、x、u前:輸入長整型加在f、e前:輸入雙精度型L加在f、e前:輸入longdouble型scanf()的格式修飾符#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題1:當(dāng)要求程序輸出結(jié)果為:a=12,b=34時(shí),用戶應(yīng)該如何輸入數(shù)據(jù)?
1234↙a=12,b=34↙a=12,b=34↙輸入數(shù)據(jù)的格式控制#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題2:當(dāng)限定用戶輸入數(shù)據(jù)以逗號為分隔符,即輸入數(shù)據(jù)格式為:12,34↙時(shí),應(yīng)修改程序中的哪條語句?怎樣修改?,
輸入數(shù)據(jù)的格式控制#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題3:語句scanf("%d%d",&a,&b);修改為scanf("a=%d,b=%d",&a,&b);時(shí),用戶應(yīng)該如何輸入數(shù)據(jù)?a=12,b=34↙輸入數(shù)據(jù)的格式控制#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題4:如果程序第5行語句輸入項(xiàng)修改為a,b,那么結(jié)果又會(huì)如何呢?
a,b輸入數(shù)據(jù)的格式控制【例3.1】
編寫程序,按如下數(shù)據(jù)輸入格式從鍵盤輸入一個(gè)整數(shù)乘法表達(dá)式:整數(shù)1*整數(shù)2然后計(jì)算并輸出該表達(dá)式的計(jì)算結(jié)果,輸出格式如下:整數(shù)1*整數(shù)2=計(jì)算結(jié)果C格式符問題及解決辦法#include<stdio.h>main(){
inti,j;
charop; printf("Pleaseentertheexpressioni*j\n"); scanf("%d%c%d",&i,&op,&j); printf("%d%c%d=%d\n",i,op,j,i*j);}Pleaseentertheexpressioni*j
第1次測試12*3↙124199288=4199300C格式符問題及解決辦法C格式符問題及解決方法#include<stdio.h>main(){
inti,j;
charop; printf("Pleaseentertheexpressioni*j\n"); scanf("%d%c%d",&i,&op,&j); printf("%d%c%d=%d\n",i,op,j,i*j);}Pleaseentertheexpressioni*j
第2次測試123↙123=36C格式符問題及解決辦法#include<stdio.h>main(){
inti,j;
charop; printf("Pleaseentertheexpressioni*j\n"); scanf("%d%c%d",&i,&op,&j); printf("%d%c%d=%d\n",i,op,j,i*j);}Pleaseentertheexpressioni*j
第3次測試12*3↙12*3=36#include<stdio.h>main(){
inta;
charb;
floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:希望得到的運(yùn)行結(jié)果12↙Pleaseinputancharacter
:a↙Pleaseinputafloatnumber:3.5↙integer:12character
:afloatnumber:3.500000#include<stdio.h>main(){
inta;
charb;
floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:實(shí)際得到的結(jié)果好像很奇怪呀!12↙Pleaseinputancharacter
:a↙Pleaseinputafloatnumber:3.5↙integer:12floatnumber:3.500000#include<stdio.h>main(){
inta;
charb;
floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");
getchar();/*將存于緩沖區(qū)中的回車字符讀入,避免被后面的變量作為有效字符讀入*/scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:程序修改后得到的運(yùn)行結(jié)果12↙Pleaseinputancharacter
:a↙Pleaseinputafloatnumber:3.5↙integer:12character
:afloatnumber:3.500000#include<stdio.h>main(){
inta;
charb;
floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf(“%c”,&b);/*第2種解決方案:在%c前加一個(gè)空格*/printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }#include<stdio.h>main(){
inti,j,mul;
charop; printf("Pleaseentertheexpressioni*j\n"); scanf("%d%c%d",&i,&op,&j); printf("%d%c%d=%d\n",i,op,j,i*j);}12*3↙12*3↙12↙*↙3↙C格式符問題及解決辦法scanf("%d,%f\n",&a,&b);scanf("%d,%f",a,b);scanf("%7.2f",&a);幾點(diǎn)忠告不要拘泥于細(xì)節(jié)不要死記硬背在使用中慢慢掌握注意!格式輸入函數(shù)常見錯(cuò)誤格式化輸出printf()
格式printf(格式控制字符串,輸出項(xiàng)表列);printf("a=%db=%f",a,b);
可以輸出若干任意類型的數(shù)據(jù)
函數(shù)名可選輸出表列普通字符格式說明轉(zhuǎn)換字符對應(yīng)的參數(shù)如何顯示c作為字符d,i作為十進(jìn)制整數(shù)u作為無符號十進(jìn)制整數(shù)o作為無符號八進(jìn)制整數(shù)x,X作為無符號十六進(jìn)制整數(shù)e,E作為指數(shù)形式的浮點(diǎn)數(shù),如1.234e+3f作為帶小數(shù)點(diǎn)的浮點(diǎn)數(shù),如3.1415g,G以e(E)或f格式,都是較短的s作為串p相應(yīng)的參數(shù)是指向void的指針,按十六進(jìn)制數(shù)顯示它的值n相應(yīng)的參數(shù)是指向一個(gè)整數(shù)的指針,該整數(shù)是至今成功寫到流或緩沖區(qū)中的字符個(gè)數(shù),對參數(shù)不做轉(zhuǎn)換%使用%%把%寫入輸出流,沒有相應(yīng)的參數(shù)被轉(zhuǎn)換printf()的轉(zhuǎn)換字符printf()格式修飾符m表示數(shù)據(jù)占用的最小寬度數(shù)據(jù)寬度大于m,按實(shí)際寬度輸出數(shù)據(jù)寬度小于m時(shí),補(bǔ)空格n對實(shí)數(shù)表示輸出n位小數(shù)對字符串表示最多輸出的字符個(gè)數(shù)l長整型整數(shù),加在d、o、x、u前Llongdouble型數(shù),加在f、e、g前-
改變輸出內(nèi)容的對齊方式默認(rèn)為右對齊格式化輸出printf()【例3.2】
下面程序演示格式化顯示數(shù)字舉例。#include<stdio.h>intmain(){ inti=1234; doublex=0.123456789; printf("|%d|%6d|%7o|%-9x|%-#9x|\n",i,i,i,i,i); printf("|%10.5f|%-12.5e|\n",x,x); return0;}程序的運(yùn)行結(jié)果如下:|1234|1234|2322|4d2|0x4d2||0.12346|1.23457e-001|格式化輸出printf()float的格式:%f
一般格式:
%[<最小域?qū)?gt;.<小數(shù)位數(shù)>]fExample:printf("Valueis:%10.4f",32.6784728);Valueis:32.678510characters4digits【例3.3】
下面程序演示格式化顯示字符和串舉例。#include<stdio.h>intmain(){ charch='W'; chars[]="Bluemoon!"; printf("|%c|%2c|%-3c|\n",ch,ch,ch); printf("|%s|%3s|%.6s|%-11.8s|\n",s,s,s,s); return0;}格式化輸出printf()程序運(yùn)行結(jié)果如下:|W|W|W||Bluemoon!|Bluemoon!|Bluem|Bluemoo|【例3.4】
編寫一個(gè)程序,對用戶錄入的產(chǎn)品信息進(jìn)行格式化。程序運(yùn)行后需得到如下運(yùn)行結(jié)果:Enteritemnumber:456Enterunitp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 過氧化氫消毒機(jī)標(biāo)準(zhǔn)化操作流程
- 綜合管理在房地產(chǎn)項(xiàng)目中的重要性
- 甜美女孩粉色甜蜜妝容
- 團(tuán)建活動(dòng)及旅游福利
- 淡藍(lán)色的元旦小朋友的快樂故事
- 護(hù)理團(tuán)隊(duì)合作與溝通
- 家政服務(wù)人員心理邊界建立
- 德克士的新品發(fā)布策略
- 保險(xiǎn)公司新年活動(dòng)方案
- 保險(xiǎn)公司績效策劃方案
- 2025設(shè)備租賃合同版本范文
- 轉(zhuǎn)讓釣場合同協(xié)議書
- 2025年四川省成都市初中學(xué)業(yè)水平考試生物試題(無答案)
- 醫(yī)院感染教學(xué)課件
- 民航危險(xiǎn)品運(yùn)輸?shù)湫桶咐?5課件
- 倉庫管理制度及流程
- 四川省綿陽市名校聯(lián)盟2025屆八年級物理第二學(xué)期期末復(fù)習(xí)檢測試題含解析
- 《全球教育資源庫》課件
- 2025-2030中國烘焙食品行業(yè)市場發(fā)展分析與發(fā)展趨勢及投資風(fēng)險(xiǎn)研究報(bào)告
- 2024北京西城區(qū)五年級(下)期末數(shù)學(xué)試題及答案
- AI技術(shù)在智能護(hù)理中的應(yīng)用和挑戰(zhàn)
評論
0/150
提交評論