




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章格式化輸入輸出Printf()Scanf()Putchar()Getchar()
3.1格式化輸出函數——printf()printf()函數的一般格式
作用:向輸出設備輸出若干個任意類型的數據。
一般格式:
printf("格式字符串"[,輸出項表]);
說明:
1.格式字符串也稱“轉換控制字符串”,包含三種字符:
(1)格式說明符:%[附加格式說明][格式字符]
(2)轉義字符
(3)普通字符──原樣輸出。
例如:
printf(“radius=%f,length=%f,area=%f\n”,r,l,s);
—m.nl[例3.1]已知圓半徑radius=1.5,求圓周長和圓面積。
#definePI3.1415926main()
{floatradius,length,area;
radius=1.5;
length=2*PI*radius; /*求圓周長*/
area=PI*radius*radius; /*求圓面積*/
printf(“radius=%f\n”,radius); /*輸出圓半徑*/
printf(“length=%7.2f,area=%7.2f\n”,length,area);/*輸出圓周長、面積*/
}
運行結果:
radius=1.500000length=9.42,area=7.07 inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+002567.789000567.789%說明 格式字符要用小寫,只有x|e|g三個格式字符可以用大寫字母。用大寫字母時,輸出數據中包含的字母也大寫格式字符與輸出項個數應相同,按先后順序一一對應輸出轉換:格式字符與輸出項類型不一致,自動按指定格式輸出附加格式說明符(修飾符).n對實數,指定小數點后位數(四舍五入)對字符串,指定實際輸出位數修飾符功能m輸出數據域寬,數據長度<m,左補空格;否則按實際輸出輸出數據在域內左對齊(缺省右對齊)-指定在有符號數的正數前顯示正號(+)+輸出數值時指定左面不使用的空位置自動填00在八進制和十六進制數前顯示前導0,0x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l
2.輸出項表可選項。用逗號分隔的表達式。例:下面的printf()函數都是合法的:
(1)printf("Iamastudent.\n"); (2)printf("%d",3+2); (3)printf("a=%fb=%5d\n",a,a+3); 注意:“格式字符串”中的格式指示符,必須與“輸出項表”中相應輸出項的數據類型一致,否則會引起輸出錯誤。
3.2格式字符(9個)
輸出不同類型的數據,要使用不同的格式字符。
1.d──以帶符號的十進制整數形式輸出。
[例3.2]類型轉換字符d的使用。main(){intnum1=123;longnum2=123456;/*用4種不同格式,輸出int型數據num1的值*/printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",num1,num1,num1,num1);/*用3種不同格式,輸出long型數據num2的值*/printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);}
運行結果:num1=123,num1=□□123,num1=123□□,num1=123num2=123456,num2=□□123456,num2=123456
對于整數,還可用:%o:八進制無符號形式輸出
%x:十六進制無符號形式輸出對于unsigned型數據,也可用
%u:以十進制無符號形式輸出。例如:printf("%d,%o,%x,%u\n",-1,-1,-1,-1);運行結果:-1,177777,ffff,65535
2.f──以小數形式,輸出單精度/雙精度實數。[例3.3]類型轉換字符f的使用。main(){floatf=123.456;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);printf("d1+d2=%f\n",d1+d2); 運行結果:123.456001,□□123.456001,□□□□□□123.46,123.46□□□□□□,123.46d1+d2=3333333333333.333010
說明:輸出結果中,數據123.456001和3333333333333.333010中的01和010都是無意義的,因為它們超出了有效數字的范圍。對于實數,還可使用格式符:%e:以標準指數形式輸出。尾數:整數部分:為1位非0數字;小數點:占一位;小數部分:占6位;指數:占5位(如e-003);共計13位。
%g:自動選擇%f或%e格式中較短者、不輸出無意義零。3.c──輸出一個字符。[例3.4]類型轉換字符c的使用。main(){charc='A';inti=65;printf("c=%c,%5c,%d\n",c,c,c);printf("i=%d,%c",i,i);}程序運行結果如下:
c=A,□□□□A,65i=65,A
注意:C語言中,整數可以字符形式輸出,字符數據也可以用整數形式輸出。注意c的不同含義4.s──輸出一個字符串。[例3.5]類型轉換字符s的使用。main(){printf("%s,%5s,%-10s\n","Internet","Internet","Internet");printf("%10.5s,%-10.5s","Internet","Internet");printf("%4.5s\n","Internet");} [程序演示]程序運行結果如下:Internet,Internet,Internet□□□□□□□Inter,Inter□□□□□,Inter注意:系統輸出字符和字符串時,不輸出單引號和雙引號。
3.3格式化輸入——scanf()函數作用:從外部輸入設備向計算機主機輸入數據。scanf()函數的一般格式
scanf()函數的一般格式scanf(“%[附加格式說明]格式字符串”,輸入項首地址表);附加格式說明符(修飾符)例scanf(“%4d%2d%2d”,&yy,&mm,&dd);
輸入19991015
則1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);
輸入12345678765.43則123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);
輸入1234567則12a,67b例scanf(“%3c%2c”,&c1,&c2);
輸入abcde
則‘a’c1,‘d’c23.4數據輸入操作
1.一般用空格作分隔符例如:scanf("%d%d",&num1,&num2);
若要輸入12給num1,輸入36給num2,則正確的輸入操作為:
12□36↙
或者:12↙
36↙求地址運算符2.“格式字符串”中出現的普通字符,務必原樣輸入。例如,scanf("%d,%d",&num1,&num2);
假設輸入12給num1,給輸入36num2,正確的輸入操作為:12,36↙
注意:scanf()函數中,格式字符串內的轉義字符(如\n),系統將其視為普通字符,所以也要原樣輸入。
例如:
scanf("num1=%d,num2=%d\n",&num1,&num2);
假設輸入12給num1,給輸入36num2,正確的輸入操作為:
num1=12,num2=36\n↙
建議:為改善人機交互性,同時簡化輸入操作,設計輸入格式時,宜先用printf()函數輸出提示信息。例如:不宜用
scanf("num1=%d,num2=%d\n",&num1,&num2);
應用:
printf("num1=");scanf("%d",&num1);printf("num2=");scanf("%d",&num2);
或用:
printf("num1,num2=");scanf("%d,%d”,&num1,&num2);3.輸入數據時,遇以下情況系統認為該數據結束:
(1)遇到空格、回車鍵或者Tab鍵。
(2)遇到輸入域寬度結束。例如“%3d”,只取3列。
(3)遇到非法輸入。
4.使用“%c”輸入單個字符時,空格和轉義字符均作為有效字符被輸入。例如:
scanf("%c%c%c",&ch1,&ch2,&ch3);printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3);
假設輸入:A□B□C↙
則系統將:字母'A'賦值給ch1,空格'□'賦值給ch2,字母'B'賦值給ch3。如scanf(“%d%c%f”,&a,&b,&c);
若輸入1234a123o.26
則1234a,‘a’b,123c3.5單個字符輸入輸出——getchar()和putchar()函數單個字符的輸出──putchar()函數[例3.6]putchar()函數的格式和使用方法。#include"stdio.h" /*編譯預處理命令:文件包含*/main(){charch1='N',ch2='E',ch3='W';putchar(ch1);putchar(ch2);putchar(ch3); /*輸出*/putchar('\n');putchar(ch1);putchar('\n’);/*輸出ch1的值,并換行*/putchar('E');putchar('\n’);/*輸出字符'E',并換行*/putchar(ch3);putchar('\n');}
運行結果:
NEWNEW1.格式:putchar(ch);
其中ch可以是一個字符變量或常量,也可以是一個轉義字符。
2.作用:向終端輸出一個字符。
3.說明:
(1)只能用于單個字符的輸出,且一次只能輸出一個字符。
(2)要使用putchar()函數,必須在程序的開頭加上編譯預處理命令(也稱包含命令),即:
#include<stdio.h>表示要使用的函數,包含在標準輸入輸出(stdio)頭文件(.h)中。3.6單個字符的輸入──getchar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五一活動室活動方案
- 五一活動福袋活動方案
- 五一清理河道活動方案
- 五一社區手工活動方案
- 五七活動套餐活動方案
- 亞運國際象棋活動方案
- 亞運童謠大賽活動方案
- 亞馬遜招商經理活動方案
- 交友營銷活動方案
- 產后抑郁活動方案
- 2024年秋期國家開放大學《西方社會學》形考任務1-4答案
- 2型糖尿病分級診療
- 2025年青海省中考數學模擬試卷附答案解析
- 企業合規管理手冊
- 年產15萬張建筑模板及疫木處理建設項目可行性研究報告模板-立項備案
- 2024年涉密人員考試試題庫保密基本知識試題附答案(考試直接用)
- 初中英語中考常考一詞多義詞總結
- 2025年日歷A4紙打印
- 遺傳學智慧樹知到答案2024年吉林師范大學
- 高中學業水平考試生物復習提綱
- 遼寧省丹東市二年級數學期末模考試卷詳細答案和解析
評論
0/150
提交評論