




版權(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ù)以,分隔沒有時可以空格、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時,用戶應(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↙時,應(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);時,用戶應(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é)果又會如何呢?
a,b輸入數(shù)據(jù)的格式控制【例3.1】
編寫程序,按如下數(shù)據(jù)輸入格式從鍵盤輸入一個整數(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前加一個空格*/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ù)常見錯誤格式化輸出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ù)是指向一個整數(shù)的指針,該整數(shù)是至今成功寫到流或緩沖區(qū)中的字符個數(shù),對參數(shù)不做轉(zhuǎn)換%使用%%把%寫入輸出流,沒有相應(yīng)的參數(shù)被轉(zhuǎn)換printf()的轉(zhuǎn)換字符printf()格式修飾符m表示數(shù)據(jù)占用的最小寬度數(shù)據(jù)寬度大于m,按實(shí)際寬度輸出數(shù)據(jù)寬度小于m時,補(bǔ)空格n對實(shí)數(shù)表示輸出n位小數(shù)對字符串表示最多輸出的字符個數(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】
編寫一個程序,對用戶錄入的產(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)容里面會有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新疆省昌吉回族自治州小升初模擬數(shù)學(xué)測試卷含解析
- 哈爾濱科學(xué)技術(shù)職業(yè)學(xué)院《中級語法》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京曉莊學(xué)院《英語視聽說(四)》2023-2024學(xué)年第一學(xué)期期末試卷
- 岳陽現(xiàn)代服務(wù)職業(yè)學(xué)院《影視制作基礎(chǔ)與實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 纖支鏡檢查的護(hù)理配合
- 上海建橋?qū)W院《輿情分析與應(yīng)對》2023-2024學(xué)年第二學(xué)期期末試卷
- 佛山職業(yè)技術(shù)學(xué)院《游泳運(yùn)動訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春人文學(xué)院《舞臺表演創(chuàng)新與實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 西安建筑科技大學(xué)《合唱與指揮二》2023-2024學(xué)年第一學(xué)期期末試卷
- 濰坊醫(yī)學(xué)院《音樂美學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 4月7日世界衛(wèi)生日(小學(xué)生主題班會課件)
- 關(guān)于“小篆”歷史的研究報(bào)告作文
- 外來文件一覽表
- 聯(lián)鎖投運(yùn)、切除申請表
- 青少年心理韌性量表及計(jì)分方式 胡月琴版
- 2022中學(xué)思政課教案《同心抗疫 我在行動》教學(xué)設(shè)計(jì)2篇
- 增材制造產(chǎn)業(yè)調(diào)研報(bào)告
- 醫(yī)院環(huán)境衛(wèi)生整治排查表
- 西師版數(shù)學(xué)六年級(上冊)知識點(diǎn)匯總
- 常見化驗(yàn)指標(biāo)的正常值及臨床意義
- 三字經(jīng)全文帶拼音完整版可打印
評論
0/150
提交評論