




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三章第三章 格式化輸入格式化輸入和輸出和輸出n一、 字符數據的輸入輸出n二、 格式化的輸入與輸出程序程序是數據數據的處理器: 它接收輸入數據,對數據進行處理,再將得到數據輸出。輸出輸出:從計算機向外部輸出設備(顯示器,打印機)輸出數據輸入輸入:從輸入設備(鍵盤,鼠標,掃描儀)向計算機輸入數據. 由于各種設備差別很大,C緩沖文件系統(tǒng)把每種設備都轉換成稱為流(stream)的邏輯設備。 流給程序員提供了與設備無關的一致界面,因此能夠用于寫入磁盤文件的函數也能用于寫入顯示器終端。 本章討論標準的輸入和輸出函數。也就是認為輸入輸出函數是從鍵盤輸入,向顯示屏輸出。 C語言中標準輸入輸出C語言函數庫中有
2、一批“標準輸入輸出函數標準輸入輸出函數”,例如: 字符輸入函數:getchar() 字符輸出函數:putchar() 格式輸入函數: scanf() 格式輸出函數:printf() 字符串輸入函數: gets() 字符串輸出函數:puts()使用這些函數時,應在程序的開頭處寫下預編譯命令: # include “stdio.h” 或或 # include 用編譯命令“#include”將有關頭文件“stdio.h”包括到用戶的源文件當中。 一、字符數據的輸入輸出1. 字符輸出函數 putchar( )p函數作用:向終端輸出一個字符p一般形式:putchar(c) 輸出變量c的值 C可以是字符型
3、變量或整型變量例例1 輸出單個字符。輸出單個字符。#includevoid main() char a,b,c; a=:;b=);c=*; putchar(a);putchar(b);putchar(c); putchar(n); 運行結果::)*putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);運行結果::)*n也可以輸出其他轉義字符,例如: putchar(101); (輸出字符A) putchar(); (輸出單引號字符) putchar(015) (輸出回車,不換行,使輸出的當前位置移到本行開頭) 2.
4、字符輸入函數p函數作用:從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符。p沒有輸入參數,一般形式:getchar()p函數值:從輸入設備得到的字符。例例2 輸入單個字符。輸入單個字符。#includevoid main() char c; c=getchar(); putchar(c); putchar(n);運行程序:運行程序:從鍵盤輸入字符從鍵盤輸入字符* *按按EnterEnter鍵鍵屏幕上將顯示輸出的字符屏幕上將顯示輸出的字符* * * *也可改寫為:putchar(getchar();二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式
5、輸出函數) 一般格式:一般格式: printf(”格式控制格式控制”,輸出列表);輸出列表);例如:例如:printf(“a=%d,b=%cn”,a,b)功能:功能:向默認輸出設備(一般是顯示器)輸出向默認輸出設備(一般是顯示器)輸出“輸出列表輸出列表”中各數據項。中各數據項。 1. 格式控制格式控制也稱“控制字符串”,是由雙引號括起來指定輸出輸出格式的字符串格式的字符串。他由格式說明格式說明、控制字符控制字符和普通字符普通字符三部分組成。(1)格式說明)格式說明構成:構成:由“%”字符開始后面跟有各種格式字符。作用:作用:以說明輸出數據的類型、形式、長度、小數位等格式。 C語言提供的常用語言
6、提供的常用printf()函數格式說明:()函數格式說明:二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) n1500 1.5*103 =1.5E+3n0.00001 1*10-5 1E-5(2)控制字符)控制字符控制字符用于控制設備的動作,如下表中制表符“t”、換行符“n”等。 轉義字符表示含義n換行,將當前位置移到下一行開頭換行,將當前位置移到下一行開頭t橫向跳格,橫向跳到下一個輸出區(qū)橫向跳格,橫向跳到下一個輸出區(qū)r回車,將當前位置移到本行開頭回車,將當前位置移到本行開頭f走紙換頁,將當前位置移到下頁開頭走紙換頁,將當前位置移到
7、下頁開頭b退格,將當前位置移到前一列退格,將當前位置移到前一列v豎向跳格豎向跳格例如:例如:printf(“x=%dn”,x); 二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) (3)普通字符)普通字符除格式說明和控制字符之外,其他字符均屬除格式說明和控制字符之外,其他字符均屬普通字符普通字符,打印,打印時按原樣輸出。時按原樣輸出。例如:例如:printf(“x=%d,%c”,12,6*8);其中“x=”和“,”都是普通字符。 輸出結果是:輸出結果是:x=12,0 二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf(
8、 )函數(格式輸出函數)函數(格式輸出函數) 2.輸出列表輸出列表:輸出列表:就是需要輸出的各數據項表達式,表達式之間用就是需要輸出的各數據項表達式,表達式之間用逗號分隔。逗號分隔。 注意:(1 1)表達式可以由變量構成,也可以由常量構成;)表達式可以由變量構成,也可以由常量構成;(2 2)表達式之間的逗號不是逗號表達式,而是確定計算)表達式之間的逗號不是逗號表達式,而是確定計算順序的分隔符,自右向左進行的計算。順序的分隔符,自右向左進行的計算。二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) 3.附加說明符在%與格式字符間插入附加
9、說明符,組成:“% ”輸出格式來達到更高輸出格式要求。二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) 附加說明符意 義l用于長整型,可以加在格式符用于長整型,可以加在格式符d、o、x、u的的前面前面m(正整數)(正整數)數據輸出的最小寬度,當數據實際寬度超過數據輸出的最小寬度,當數據實際寬度超過m時,則按實際寬度輸出,如實際寬度短于時,則按實際寬度輸出,如實際寬度短于m,則輸出時前面補則輸出時前面補0或空格?;蚩崭瘛?n(正整數)(正整數)對實數表示輸出對實數表示輸出n位小數,對字符串,表示從位小數,對字符串,表示從左截取的字符個
10、數左截取的字符個數-輸出的字符或數字在域內向左對齊,默認右輸出的字符或數字在域內向左對齊,默認右對齊對齊+輸出的數字前帶有正負號輸出的數字前帶有正負號0在數據前多余空格處補在數據前多余空格處補0二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) 【例【例3.1】輸出整型、長整型、無符號整型數據#include “stdio.h”void main() int y=20; long a=1024; unsigned b=54321; printf(“%d,%ld,%un”,y,a,b); printf(“%+8d,%+8ld,%+8un
11、”,y,a,b); printf(“%08d,%08ld,%08un”,y,a,b); printf(“%-8d,%-8ld,%-8un”,y,a,b); printf(“%o,%lo,%on”,y,a,b); printf(“%#x,%#lx,%#xn”,y,a,b); printf(“%8o,%8lo,%8on”,y,a,b); printf(“%-8x,%-8lx,%-8xn”,y,a,b); 二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) 運行結果如下:(運行結果如下:(代表空格代表空格)20,1024,54321+20,
12、+1024,5432100000020,00001024,0005432120,1024,5432124,2000,1520610 x14,0 x400,0 xd432124,2000,15206114, 400, d4321二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) %-8.1E %-8.3fn86,1040【例【例3.2】輸出字符和字符串#include “stdio.h”void main() char ch=a; printf(“%cn”,ch); printf(“%-3cn”,ch); printf(“%3cn”,c
13、h); printf(“%sn”,”programing”); printf(“%15sn”,”programing”); printf(“%-15sn”,”programing”); printf(“%10.5sn”,”programing”); printf(“%-10.5sn”,”programing”);運行結果如下:aaaprogramingprogramingprogramingprogrprogr二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) 【例【例3.3】輸出實型數據#include “stdio.h”void
14、main() float x,y; double a; x=111111.111;y=123.468; a=333333333.33333; clrscr(); printf(“%fn”,x); printf(“%fn”,a); printf(“%10f,%10.2f,%.2f,%-10.2fn”,x,x,x,x); printf(“%en”,x); printf(“%en”,a); printf(“%10e,%10.2e,%.2e.%-10.2en”,a,a,a,a); printf(“%f,%e,%g”,y,y,y);二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函
15、數(格式輸出函數)函數(格式輸出函數) 程序運行結果如下:程序運行結果如下:111111.109375333333333.333330111111.109375, 111111.11,111111.11,111111.111.11111e+053.33333e+083.33333e+08, 3.33e+08,3.33e+08.33e+08123.468002,1.23468e+02,123.468二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) 4. 在使用printf()函數時,還應注意以下問題 (1)轉換說明與輸出參數不一致時可
16、能產生錯誤。)轉換說明與輸出參數不一致時可能產生錯誤。printf()函中格式符串中的數目多于列表參數個數時,則會輸出錯誤數據;如果格式符串中的數目少于列表參數個數,則多出的參數不被輸出。例如:例如:#include “stdio.h”void main() int i=-6,x=5; float y=123.456; printf(“%d,%dn”,i); printf(“%-4d,%f”,i,y,x); 輸出結果為:輸出結果為: -6,2509 /*多余格式符輸出錯誤數據*/ -6,123.456001 /* x未被輸出*/二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf(
17、 )函數(格式輸出函數)函數(格式輸出函數) (2)“f”格式符一般為格式符一般為7位有效數字位有效數字,雙精度一般為雙精度一般為16位。位。例如:例如: #include “stdio.h” void main() float x=111111.111,y=222222.222; printf(%f,x+y); 輸出結果為:輸出結果為: 333333.328125 /*前7位是有效數字,后面數字無意義*/二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) (2)“f”格式符一般為格式符一般為7位有效數字位有效數字,雙精度一般為雙精度
18、一般為16位。位。 #include “stdio.h” void main() double x=111111.11111,y=222222.22222; printf(%lf,x+y); 輸出結果為:輸出結果為: 333333.333330 /*可達16位是有效數字,小數點保留6位*/二、二、 格式化的輸入與輸出格式化的輸入與輸出1. printf( )函數(格式輸出函數)函數(格式輸出函數) 二、二、 格式輸入與輸出格式輸入與輸出2 scanf( )函數(格式輸入函數)函數(格式輸入函數)一般形式:一般形式: scanf(格式控制格式控制,地址列表);,地址列表);功能:功能:從鍵盤向程
19、序中的變量輸入一個或若干個任意類型的數據。例如:例如: scanf(%d,%d,&a,&b);); 1. 格式控制格式控制格式控制與printf基本相同,由格式說明、附加說明字符和普通字符三部分組成。% 格式字符作 用%d,%i輸入帶符號的十進制整數輸入帶符號的十進制整數%u輸入無符號十進制整數輸入無符號十進制整數%x,%X輸入無符號的十六進制整數輸入無符號的十六進制整數(不區(qū)分大小寫不區(qū)分大小寫)%o輸入無符號形式八進制整數輸入無符號形式八進制整數%f輸入實數,可以用小數形式或指數形式輸入輸入實數,可以用小數形式或指數形式輸入%e,%E%g,%G與與%f作用相同,作用相同,%
20、e、%f、%g可以互相替換可以互相替換%c輸入單個字符輸入單個字符%s輸入字符串,將字符串送到一個字符數組中,在輸入時以非空字符輸入字符串,將字符串送到一個字符數組中,在輸入時以非空字符開始,遇到回車或空格字符結束開始,遇到回車或空格字符結束二、二、 格式輸入與輸出格式輸入與輸出2 scanf( )函數(格式輸入函數)函數(格式輸入函數)格式修飾符格式修飾符作作 用用L或l用在格式字符用在格式字符d、o、x、u的前,表示輸入長整型數據,用在的前,表示輸入長整型數據,用在f或或e前,表示輸入前,表示輸入double型數據。型數據。h用在格式字符用在格式字符d、I、o、x前,表示輸入短整型數據前,
21、表示輸入短整型數據m指定輸入數據所占寬度,不能用來指定實數型數據寬度,應為指定輸入數據所占寬度,不能用來指定實數型數據寬度,應為正整數正整數*表示該輸入項在讀入后不賦值給相應的變量表示該輸入項在讀入后不賦值給相應的變量二、二、 格式輸入與輸出格式輸入與輸出2 scanf( )函數(格式輸入函數)函數(格式輸入函數)2. 地址列表地址列表地址列表:用逗號分隔的若干接收輸入數據的變量地址。各變量地址間用逗號“,”分隔。變量地址組成:由地址運算符“&”后跟變量名組成。例如:例如:#include void main() int a,b, c; scanf(“%d%d%d”,&a,&a
22、mp;b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c);輸入數據的格輸入數據的格式表示什么意式表示什么意思思?二、二、 格式輸入與輸出格式輸入與輸出2 scanf( )函數(格式輸入函數)函數(格式輸入函數)運行時按以下方式輸入運行時按以下方式輸入a,b,c的值:的值:345 (輸入a,b,c的值,用空格間隔)a=3,b=4,c=5 (輸出a,b,c的值) 注:輸入數據時,在兩個數據之間以一個或多個空格間隔,也可以輸入數據時,在兩個數據之間以一個或多個空格間隔,也可以用用Enter鍵、鍵、Tab鍵分隔,鍵分隔,不能用逗號作為兩個數據的分隔符。不能用逗號作為兩
23、個數據的分隔符。下面輸入均為合法:下面輸入均為合法: 345 3 4 53(按Tab鍵)4 5如下面的輸入不合法如下面的輸入不合法:3,4,5二、二、 格式輸入與輸出格式輸入與輸出2 scanf( )函數(格式輸入函數)函數(格式輸入函數)3. 使用scanf()函數時應注意的問題(1)地址列表中的各個參量都是變量地址,而不是變量名。)地址列表中的各個參量都是變量地址,而不是變量名。例如:例如:設a 、 b 分別為整型變量和浮點型變量,則scanf(“%d %f”,&a,&b);是合法的。而scanf(%d %f,a,b);是非法的。 二、二、 格式輸入與輸出格式輸入與輸出2
24、scanf( )函數(格式輸入函數)函數(格式輸入函數)(2)普通字符在輸入數據時,在對應位置上輸入相同字符。)普通字符在輸入數據時,在對應位置上輸入相同字符。例如:例如:scanf(%d,%d,&a,&b)輸入時應用如下形式:輸入時應用如下形式:3,4以下輸入格式是不對的:以下輸入格式是不對的:343 : 4。又如:又如:scanf(”%d:%d:%d”,&x,&y,&z);輸入形式應為:12:13:14。 二、二、 格式輸入與輸出格式輸入與輸出2 scanf( )函數(格式輸入函數)函數(格式輸入函數)(3)對于實型數據,輸入時不能規(guī)定其精度。)對于實型數據,輸入時不能規(guī)定其精度。例如:例如:scanf(“%6.3f”,&x);是不合法的。(4)在用)在用“%c”格式輸入字符時,空格字符和格式輸入字符時,空格字符和“轉義字符轉義字符”都將作為有效的字符輸入。都將作為有效的字符輸入。例如:例如:scanf(%c%c%c,&c1,&c2,&c3);如果輸入:如果輸入:abc則字符ac1,字符c2,字符bc3。正確輸入方法是:正確輸入方法是:a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園電商推廣合作合同(2篇)
- 2025企業(yè)員工勞動合同協(xié)議書
- 2025企業(yè)合同范本2
- 輸卵管堵塞的臨床護理
- 2025科技公司勞動合同樣本參考
- 2025年監(jiān)理工程師之合同管理提升訓練試卷A卷附答案
- 2025年一級建造師之一建礦業(yè)工程實務基礎試題庫和答案要點
- 2025標準版商業(yè)店鋪續(xù)租合同范本
- 藏醫(yī)學專業(yè)就業(yè)能力展示
- 腹部創(chuàng)傷的臨床護理
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認證機構要求》中文版(機翻)
- 國際關系理論智慧樹知到期末考試答案2024年
- 頂板安全管理知識
- 《新能源汽車轉向系統(tǒng)》課件
- 歐洲西部資料歐洲西部 詳細版課件
- 報關委托書 電子版
- 高中音樂人教版高一全一冊音樂-《芬蘭頌》詳案
- 廣告制作及印刷品方案
- 流數據分析技術全套課件
- 東莞市衛(wèi)生與健康十三五規(guī)劃
- 土壤分析技術規(guī)范(第二版)
評論
0/150
提交評論