版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 輸入輸出語句俞軍 編寫滿足如下條件的一個(gè)程序o可以求任意兩個(gè)整數(shù)的和o這任意兩個(gè)整數(shù)由用戶輸入o把所得到的和輸出o在程序的運(yùn)行過程中,往往需要由用戶輸入一些數(shù)需要由用戶輸入一些數(shù)據(jù)據(jù),這些數(shù)據(jù)經(jīng)機(jī)器處理后要輸出反饋給用戶輸出反饋給用戶。o通過數(shù)據(jù)的輸入輸出來實(shí)現(xiàn)人與計(jì)算機(jī)之間的交互,所以在程序設(shè)計(jì)中,輸入輸出語句輸入輸出語句是一類必不可少的重要語句。o在C語言中,沒有專門的輸入輸出語句,所有的輸入輸出操作都是通過對(duì)標(biāo)準(zhǔn)I/O庫函數(shù)的調(diào)用實(shí)現(xiàn)。最常用的輸入輸出函數(shù)有scanf( )scanf( )、printf( )printf( )、getchar( )getchar( )和putch
2、ar( )putchar( )。4.1 putchar函數(shù)o當(dāng)我們要把字符一個(gè)一個(gè)輸出時(shí),可以用putchar函數(shù),它是一個(gè)專門輸出字符的函數(shù)。其一般形式是:o該函數(shù)的功能是輸出“字符表達(dá)式”的值。nputchar(A); /輸出字符A;nputchar(A+1); /輸出字符B;o在使用標(biāo)準(zhǔn)I/O庫函數(shù)時(shí),要用預(yù)編譯命令“#include”將“stdio.h”文件包含到用戶源文件中,即:ostdio.h是standard input&output的縮寫,它包含了與標(biāo)準(zhǔn)I/O庫函數(shù)有關(guān)的定義和函數(shù)聲明(具體見編譯預(yù)處理命令章節(jié))。在需要使用標(biāo)準(zhǔn)I/O庫中的函數(shù)時(shí),應(yīng)在程序前使用上述預(yù)編
3、譯命令。putchar()#include 4.2 printf 函數(shù)4.2.1 printf 函數(shù)的格式 printf函數(shù)的一般格式為: “輸出表列”是需要輸出的一些數(shù)據(jù),可以是表達(dá)式。例如: printf(%d %d,a+2,b); “格式控制”是用雙引號(hào)括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它用于控制輸出數(shù)據(jù)的格式。printf(,)“格式控制”包括兩種信息:(1)格式說明,由“%”和格式說明字符組成,如%d、%f。 表4.1 printf格式符格式字符 說明 d以帶符號(hào)的十進(jìn)制形式輸出整型數(shù)(正數(shù)不輸出符號(hào)) o以8進(jìn)制無符號(hào)形式輸出整型數(shù)(不輸出前導(dǎo)符0) x以16進(jìn)制無符號(hào)形式輸
4、出整型數(shù)(不輸出前導(dǎo)符0 x) u以無符號(hào)10進(jìn)制形式輸出整型數(shù) c以字符形式輸出,只輸出一個(gè)字符 s輸出字符串 f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù) e以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位 g自動(dòng)選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0 (2)普通字符,即需要原樣輸出的字符。 例如:printf(a=%d b=%d,a,b);n在上面雙引號(hào)中的字符除了“%d”和“%d”以外,還有非格式說明的普通字符(“a=”和“b=”),它們按原樣輸出。n計(jì)算機(jī)在執(zhí)行該語句時(shí),首先輸出格式控制串中的”a=”,然后碰到一個(gè)格式說明“%d”,就從輸出表列中取第一個(gè)
5、數(shù)據(jù)項(xiàng)a,按格式說明輸出該數(shù)據(jù)項(xiàng)值,然后原樣輸出格式控制串中的“b=”,又碰到第二個(gè)格式說明“%d”,取輸出表列中的第二個(gè)數(shù)據(jù)項(xiàng)b,按格式說明輸出其值。4.2.2 格式說明字符od d格式符格式符n用來控制整型數(shù)按十進(jìn)制形式輸出。n%d,按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。n%md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)(包括負(fù)號(hào))小于m,則右對(duì)齊左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。 n%-md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左對(duì)齊補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出n%ld,輸出長(zhǎng)整型數(shù)據(jù),也可以%mld,%-mld o o格式符格式符o以八進(jìn)制數(shù)形式輸出整型數(shù)據(jù)。o數(shù)值不
6、帶符號(hào),即將符號(hào)也一起作為八進(jìn)制數(shù)的一部分輸出。o對(duì)長(zhǎng)整數(shù)(long型)可以用“%lo”格式輸出。o可以指定字段寬度,如“%8o”。oo格式符一般用于輸出正整數(shù)或無符號(hào)類型的數(shù)據(jù)。 x x格式符格式符o以16進(jìn)制形式輸出整型數(shù)據(jù)。o不會(huì)出現(xiàn)負(fù)的十六進(jìn)制數(shù)。o可以用“%x”輸出長(zhǎng)整型數(shù)。o可以指定輸出字段的寬度,如“%12x”。ox格式符一般用于輸出正整數(shù)或無符號(hào)類型的數(shù)據(jù)。 u u格式符格式符o用來輸出unsigned數(shù)據(jù),即無符號(hào)數(shù),以十進(jìn)制形式輸出。o一個(gè)有符號(hào)整型數(shù)(int型)也可以用%u格式輸出,此時(shí)把符號(hào)位當(dāng)作數(shù)值看待。o一個(gè)unsigned型數(shù)據(jù)也可以用%d格式輸出,按相互賦值的規(guī)
7、則處理。unsigned數(shù)據(jù)也可用%o或%x格式輸出。 c c格式符格式符o用來輸出一個(gè)字符。如: char c=a; printf(%c,c); 輸出字符a,注意“%c”的c是格式符,逗號(hào)右邊的C是變量名,不要搞混。o一個(gè)整數(shù),只要它的值在0255范圍內(nèi),也可以用字符形式輸,在輸出前將該整數(shù)轉(zhuǎn)換成換成相應(yīng)的ASCII字符;反之,一個(gè)字符數(shù)據(jù)也可以用整型數(shù)形式輸出,但輸出的是其ASCII碼值。 printf(“%c”,97); s s格式符格式符o%s%s,用來輸出一個(gè)字符串(不包括雙引號(hào))。o%ms%ms,輸出的字符串占m列,若字符串長(zhǎng)度小于m,則“右對(duì)齊”,左邊補(bǔ)空格。如字符本身長(zhǎng)度大于m
8、,則突破m的限制,將字符串全部輸出。o%-ms%-ms,若字符串長(zhǎng)度小于m,則在m列范圍內(nèi),“左對(duì)齊”,右邊補(bǔ)空格。如字符本身長(zhǎng)度大于m,則突破m的限制,將字符串全部輸出。o%m.ns%m.ns,輸出占m列,但只取字符串中左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左邊補(bǔ)空格。o%-m.ns%-m.ns,其中m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右面補(bǔ)空格。如果m省略或nm,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。 f f格式符格式符用來輸出實(shí)型數(shù)(包括單、雙精度數(shù)),以小數(shù)形式輸出。o%f,不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)部分全部如數(shù)輸出,并輸出6位小數(shù)。應(yīng)當(dāng)注意,并非全部數(shù)字都
9、是有效數(shù)字,單精度數(shù)的有效位數(shù)一般為7位。也就是說單精度數(shù)用%f格式輸出,只有前7位是有效的。雙精度數(shù)的有效位數(shù)一般為16位,雙精度數(shù)用%f格式輸出時(shí),只有前16位有效。o%m.nf,指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長(zhǎng)度(包括小數(shù)點(diǎn)和負(fù)號(hào))小于m,則采用“右對(duì)齊”輸出,左端補(bǔ)空格。如果m省略則整數(shù)部分按實(shí)際寬度如數(shù)輸出。o%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值“左對(duì)齊”,右端補(bǔ)空格。 e e格式符格式符以指數(shù)形式輸出實(shí)數(shù)。o%e,不指定輸出所占的寬度和數(shù)字部分小數(shù)位數(shù),由系統(tǒng)自動(dòng)指定給出6位小數(shù),指數(shù)部分占5位(如e+002),其中“e”占一位,指數(shù)符號(hào)占一位,指數(shù)
10、占3位。數(shù)值按標(biāo)準(zhǔn)化指數(shù)形式輸出(即小數(shù)點(diǎn)前必須有而且只有一位非零數(shù)字)。o%m.ne和%-m.ne,m、n及“-”字符含義與之前相同。此處n為指數(shù)的數(shù)字部分(又稱尾數(shù))的小數(shù)位數(shù)。如省略n,則n=6。如省略m,則自動(dòng)使m等于數(shù)據(jù)應(yīng)有的長(zhǎng)度,即m=7+n。 g g格式符格式符 用來輸出實(shí)型數(shù),它根據(jù)數(shù)值的大小,自動(dòng)選f格式或e格式(選擇輸出時(shí)占寬度較小的一種),且不輸出無意義的零。 若f=123.468,則: printf(”%f,%e,%g”,f,f,f); 輸出如下: 123.468000,1.234680e+002,123.468 用%f格式輸出占10列,用%e格式輸出占13列,用%g格
11、式時(shí),自動(dòng)從前面兩種格式中選擇短者(今為%f格式為短),故選擇按%f格式輸出,且小數(shù)位中的最后三位為無意義的0,不輸出。%g格式用得比較少。在在使用函數(shù)使用函數(shù)printfprintf函數(shù)時(shí),還有幾點(diǎn)要說明:函數(shù)時(shí),還有幾點(diǎn)要說明:o格式字符要用小寫字母,如%d不能寫成%D。o可以在printf函數(shù)中的“格式控制”字符串內(nèi)包含轉(zhuǎn)義字符,如“n”、“t”、“b” 、“r”、“f”、“377”等,它們將按轉(zhuǎn)義字符意思輸出。o上面介紹的d、o、x、u、c、s、f、e、g等字符,如不是用在“%”后面就作為普通字符,原樣輸出。o如果想輸出字符“%”,可以在“格式控制”字符串中用連續(xù)兩個(gè)%表示,或者使用轉(zhuǎn)
12、義字符“45”。o不同的系統(tǒng)在格式輸出時(shí),輸出結(jié)果可能會(huì)有一些小的差別,例如用%e格式符輸出實(shí)數(shù)時(shí),有些系統(tǒng)輸出的指數(shù)部分為4位(如e+02)而不是5位(如e+002),前面數(shù)字的小數(shù)部分為5位而不是6位等等。4.3 getchar 函數(shù) 此函數(shù)的作用是從鍵盤輸入一個(gè)字符,并把這個(gè)字符作為函數(shù)的返回值。getchar函數(shù)沒有參數(shù),其一般形式為:getchar()。例4.8 o請(qǐng)注意,getchar()只能接受一個(gè)字符。getchar函數(shù)得到的字符可以賦給一個(gè)字符變量或整型變量。也可以不賦給任何變量。也可以作為表達(dá)式的一部分o在一個(gè)函數(shù)中調(diào)用getchar函數(shù),應(yīng)該在函數(shù)的前面(或本文件開頭)用
13、:#include在運(yùn)行時(shí),如果從鍵盤輸入字符a;a (輸入a后,按回車鍵字符才 送到內(nèi)存)a (輸出變量c的值a)4.4 scanf 函數(shù)4.4.1 4.4.1 一般形式一般形式 scanf函數(shù)的一般形式是: o“格式控制”的含義同printf函數(shù),但scanf中的“格式控制”是控制輸入的數(shù)據(jù)。o“地址表列”由若干個(gè)地址組成的表列,是可以接受數(shù)據(jù)的變量的地址,取操作符& &例例4.9 scanf(格式控制),)4.4.2 4.4.2 格式說明格式說明 和printf函數(shù)中的格式說明相似,scanf中的格式說明也以%開始,以一個(gè)格式字符結(jié)束,中間可以插入附加格式說明字符(修飾符
14、)。 如表4.3和4.4所示。 表表4.3 scanf4.3 scanf格式字符格式字符格式字符 說明 d用來輸入十進(jìn)制整型數(shù) o用來輸入八進(jìn)制整型數(shù) x用來輸入十六進(jìn)制整型數(shù) c用來輸入單個(gè)字符 s用來輸入字符串,將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以空白字符開始,以第一個(gè)分隔字符結(jié)束。系統(tǒng)自動(dòng)把字符串結(jié)束標(biāo)志0加到字符串尾部f用來輸入實(shí)型數(shù),可以用小數(shù)形式或指數(shù)形式輸入 e與f作用相同,e與f可以互相替換 表表4.4 scanf4.4 scanf附加的格式說明字符附加的格式說明字符字符 說明 l用于輸入長(zhǎng)整數(shù)數(shù)據(jù)(可用%ld、%lo、%lx),以及double型數(shù)據(jù)(用%lf或%le) h
15、用于輸入短整型數(shù)據(jù)(可用%hd、%ho,%hx) m(正整數(shù))指定輸入數(shù)據(jù)所占寬度(列數(shù)) * 表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量 整數(shù)(%d)在屏幕中輸入35,按回車整數(shù)(%d)在屏幕中輸入35 36,按回車整數(shù)(%d)在屏幕中輸入35,按Tab鍵,輸入36,按回車整數(shù)(%d)在屏幕中輸入35,按空格鍵,輸入36,按回車整數(shù)(%d)在屏幕中輸入35,按Tab鍵,輸入36,按回車整數(shù)(%d)在屏幕中輸入35,按回車鍵,輸入36,按回車整數(shù)(%d)在屏幕中輸入35,輸入逗號(hào),輸入36,按回車整數(shù)(%d)在屏幕中輸入35,按空格鍵,輸入36,按回車整數(shù)(%d)在屏幕中輸入35,按Tab鍵,輸入3
16、6,按回車整數(shù)(%d)在屏幕中輸入35,按回車鍵,輸入36,按回車整數(shù)(%d)在屏幕中輸入35,輸入逗號(hào),輸入36,按回車整數(shù)(%d)在屏幕中輸入35,輸入逗號(hào),輸入36,按回車整數(shù)(%d)在屏幕中輸入35,輸入空格,輸入36,按回車整數(shù)(%md)在屏幕中輸入123,按回車整數(shù)(%md)在屏幕中輸入123456,按回車整數(shù)(%md)在屏幕中輸入123456,按回車整數(shù)(%md)在屏幕中輸入123456,按回車整數(shù)(%o)在屏幕中輸入77,按回車整數(shù)(%o)在屏幕中輸入88,按回車整數(shù)(%x)在屏幕中輸入abc8,按回車實(shí)數(shù)( %f,%e )在屏幕中輸入123456.78,按回車實(shí)數(shù)(%f,%e )在屏幕中輸入123456.78,按回車實(shí)數(shù)(%f,%e)在屏幕中輸入123456.78,按回車字符相關(guān)(%c)在屏幕中輸入A,按回車其他(*)在屏幕中輸入12,空格,34,空格,56,按回車oC語言在scanf中不使用%u格式符,對(duì)unsigned型數(shù)據(jù),以%d、%o或%x格式輸入。o可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。o%后的附加說明符”*”,用來表示跳過它相應(yīng)的數(shù)據(jù)。1.輸入數(shù)據(jù)時(shí)不能規(guī)定精度。4.4.3 scanf4.4.3 scanf函數(shù)的執(zhí)行中應(yīng)注意的問題函數(shù)的執(zhí)行中應(yīng)注意的問題oscanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度駕駛員勞動(dòng)合同解除條件與雇傭合同范本3篇
- 二零二五年度車輛買賣居間與車輛保險(xiǎn)代理合同2篇
- 襄陽科技職業(yè)學(xué)院《產(chǎn)品質(zhì)量先期策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度大型活動(dòng)組織與管理服務(wù)合同3篇
- 二零二五年酒店入股與民宿產(chǎn)業(yè)合作協(xié)議3篇
- 二零二五年度高端醫(yī)療設(shè)備采購與銷售合作協(xié)議2篇
- 2024版有關(guān)物業(yè)管理合同范文
- 二零二五年電子商務(wù)平臺(tái)建設(shè)外包合同3篇
- 銅仁學(xué)院《銷售管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024瑜伽館投資入股與瑜伽用品供應(yīng)合同3篇
- 廣東省惠州市2024-2025學(xué)年高一上學(xué)期期末考試英語試題(含答案)
- 醫(yī)院骨科2025年帶教計(jì)劃(2篇)
- 環(huán)境保護(hù)應(yīng)急管理制度執(zhí)行細(xì)則
- 2024-2030年中國(guó)通航飛行服務(wù)站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 機(jī)械制造企業(yè)風(fēng)險(xiǎn)分級(jí)管控手冊(cè)
- 地系梁工程施工方案
- 藏文基礎(chǔ)-教你輕輕松松學(xué)藏語(西藏大學(xué))知到智慧樹章節(jié)答案
- 2024電子商務(wù)平臺(tái)用戶隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語 含答案
- 醫(yī)學(xué)教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
評(píng)論
0/150
提交評(píng)論