C语言程序设计:第4章 数据的输入和输出

上传人:s9****2 文档编号:569179822 上传时间:2024-07-28 格式:PPT 页数:31 大小:198.50KB
返回 下载 相关 举报
C语言程序设计:第4章 数据的输入和输出_第1页
第1页 / 共31页
C语言程序设计:第4章 数据的输入和输出_第2页
第2页 / 共31页
C语言程序设计:第4章 数据的输入和输出_第3页
第3页 / 共31页
C语言程序设计:第4章 数据的输入和输出_第4页
第4页 / 共31页
C语言程序设计:第4章 数据的输入和输出_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《C语言程序设计:第4章 数据的输入和输出》由会员分享,可在线阅读,更多相关《C语言程序设计:第4章 数据的输入和输出(31页珍藏版)》请在金锄头文库上搜索。

1、数据的输入和输出C C语言程序设计语言程序设计第四章第四章1本章要点掌握C语言中输入输出数据的方法掌握各种格式的使用 2 数据输入输出的概念数据输入输出的概念l 输出:从计算机内存向显示器、打印机等外部设输出:从计算机内存向显示器、打印机等外部设备输出数据。备输出数据。l输入:从标准输入设备键盘、鼠标等向计算机内存输入:从标准输入设备键盘、鼠标等向计算机内存输入数据。输入数据。lC C语言不提供输入输出语句,输入输出操作是由语言不提供输入输出语句,输入输出操作是由C C函函数库中的函数实现。数库中的函数实现。l调用输入输出调用输入输出函数时,要函数时,要求在源文件中包含求在源文件中包含“std

2、io.hstdio.h”头文件。头文件。 如如 #include #include 或或 #include #include “stdio.hstdio.h”34.1.1 4.1.1 格式输出函数格式输出函数1.函数的基本功能函数的基本功能 格式:格式:printf(格式控制串格式控制串 ,输出表列)输出表列) 功能:从标准输出设备上,按指定的格式输出对应功能:从标准输出设备上,按指定的格式输出对应 的变量。的变量。4.1 4.1 数据输出数据输出2. 函数说明函数说明: (1) 格式控制串由双引号括起来,由格式控制串由双引号括起来,由“%”和格式符和格式符以及以及普通字符(即需要原样输出的字

3、符)组成。普通字符(即需要原样输出的字符)组成。 (2)(2)输出表列是需要输出的一些数据,可以是常量、输出表列是需要输出的一些数据,可以是常量、变量或表达式。变量或表达式。(3)(3)输出的数据必须与格式控制符中的格式说明在类输出的数据必须与格式控制符中的格式说明在类型、个数和位置上一一对应。型、个数和位置上一一对应。4例例: #include main( ) int a=3, b=4; printf(“a=%d b=%d”,a,b);运行结果运行结果:a=3 b=4格式说明格式说明(格式字符格式字符)普通字符普通字符输出表列输出表列5例例: #include main( ) float a

4、=3, b=4; printf(“a=%f b=%f”,a,b);运行结果运行结果:a=3 b=4格式说明格式说明(格式字符格式字符)普通字符普通字符输出表列输出表列63.格式说明符格式说明符 一般格式一般格式: %-m.nl格式控制符格式控制符说明如下说明如下:- 当数据的宽度小于显示宽度时当数据的宽度小于显示宽度时,数据数据左对齐左对齐,右方补空格右方补空格.m 输出数据占输出数据占m个字符位,不够个字符位,不够右对齐右对齐,左边填空格。,左边填空格。n 输出数据有输出数据有n位小数位小数m.n 输出数据占输出数据占m列,列,n位小数位小数对不同类型的数据使用不同的格式字符。有以对不同类型

5、的数据使用不同的格式字符。有以下几种格式控制符:下几种格式控制符:7d d: : 以以十进制十进制带符号形式输出整型数带符号形式输出整型数o o:以:以八进制八进制无符号形式输出整型数无符号形式输出整型数x x:以:以十六进制十六进制无符号形式输出整型数无符号形式输出整型数u u:以十进制:以十进制无符号无符号形式输出整型数形式输出整型数f f:以:以小数形式小数形式输出单、双精度实型数输出单、双精度实型数e: e: 以以指数形式指数形式输出单、双精度实型数输出单、双精度实型数c: c: 以以字符形式字符形式输出一个输出一个字符字符s: s: 以以字符形式字符形式输出一个输出一个字符串字符串l

6、d:ld:以十进制带符号形式输出以十进制带符号形式输出长整型数长整型数基本格式控制符基本格式控制符8 (1) d格式符格式符: 有符号有符号十进制形式输出整数。十进制形式输出整数。 %d -按整型数据的实际长度输出。按整型数据的实际长度输出。 %md -m为指定的输出字段的宽度为指定的输出字段的宽度.若数据的位数小于若数据的位数小于m,则左端补以空格则左端补以空格;若大于若大于m,则按实际位数输出。则按实际位数输出。 %ld -输出长整型数据输出长整型数据.例:int a=1234; printf(“%3d”,a); printf(“%5dn”,a); printf(“%-5d”,a);123

7、4 1234实际实际 左补空左补空1234 左对齐,右补空左对齐,右补空9(2)(2)o o格式符格式符 以无符号八进制数形式输出整数。以无符号八进制数形式输出整数。 将内存单元中的各位的值将内存单元中的各位的值(0或或1)按八进制形式输出按八进制形式输出,输出的数值不带符号输出的数值不带符号,将符号也作为八进制数的一部将符号也作为八进制数的一部分输出。分输出。 例如例如,-1在内存单元中在内存单元中(以补码形式存放以补码形式存放)如下如下: int a= -1; -1: printf(“%d,%o”,a,a); 输出输出: 1 1 11 11 11 11 11 11 11VC+下-1,177

8、777 TC环境下10(3) x格式符格式符,以无符号十六进制数形式输出整数。以无符号十六进制数形式输出整数。(4) u格式符格式符,以十进制无符号形式输出整型数据。以十进制无符号形式输出整型数据。 例例 #include main() unsigned int a=65535; int b= -2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b,b); 输出输出: a= -1,177777,ffff,65535 b= -2,177776,fffe,6553411(5) c 格式符格式符 输出一个字符。输出一个字

9、符。例例 char ch=a; printf(“%c”,ch); 注意:注意:若整数的值在若整数的值在0 0255范围内范围内, ,也可以用字符形也可以用字符形式输出。在输出前式输出。在输出前, ,将该整数转换成相应的将该整数转换成相应的ASCIIASCII字字符符; ;字符数据也可以用整数形式输出。字符数据也可以用整数形式输出。例例 main( ) char c=a; int i=97; printf(%c,%dn,c,c); printf(%c,%dn,i,i); 输出输出: a,97 a,9712(6)s格式符格式符 输出一个字符串。输出一个字符串。(7)-若不指定字符宽度和对齐方式若不

10、指定字符宽度和对齐方式,则输出全部字符则输出全部字符串串. 例如例如: printf(%s, CHINA); 程序运行输出:程序运行输出: CHINA-若指定宽度若指定宽度m,实际字符个数大于,实际字符个数大于m,按实际宽度输按实际宽度输出出;如果实际字符个数小于如果实际字符个数小于m,字符右对齐,左边填字符右对齐,左边填空格。对于空格。对于m.n,只取前,只取前n个字符。个字符。 -若指定宽度若指定宽度-m,实际字符个数大于,实际字符个数大于m,按实际宽度按实际宽度输出输出;如果实际字符个数小于如果实际字符个数小于m,字符左对齐,右边字符左对齐,右边填空格。对于填空格。对于m.n,只取前个,

11、只取前个n字符。字符。13(6)s格式符格式符 输出一个字符串。输出一个字符串。(7)(7)例如例如: :(8)(8) printf(“s1=%s, s2=%3s, s3=%-5.2s, s4=%.3s, abcd, abcd, abcd, abcd) ; 程序运行输出:程序运行输出: s1=abcd,s2=abcd,s3=s1=abcd,s2=abcd,s3=abab ,s4= ,s4=abcabc14(7) f格式符格式符 以小数形式输出实数以小数形式输出实数(包括单、双精度包括单、双精度)。1) %f , 不指定字段宽度不指定字段宽度,由系统自动指定由系统自动指定,使整数部分全使整数部分

12、全部输出部输出,并输出并输出6位小数(输出双精度数据,也是位小数(输出双精度数据,也是6位,位,但误差降低)。但误差降低)。2) %m.nf , 指定输出的数据共占指定输出的数据共占m列列,其中有其中有n位小数位小数.若若数据长度小于数据长度小于m,则左端补空格。对于则左端补空格。对于%-m.nf ,则右则右端补空格。端补空格。 15(7) f格式符格式符例:例: float x=15.3, y=222.225111; printf(“%f,%6.2fn”,x,y); 输出:15.300000, 222.23168. e格式格式 以指数形式输出实数。以指数形式输出实数。 1) %e 不指定输出

13、数据所占的宽度和数字部分小数位不指定输出数据所占的宽度和数字部分小数位数数,由系统自动指定给出由系统自动指定给出6位小数位小数,指数部分占指数部分占5位位,其其中中“e”占一位占一位,指数指数符号占一位符号占一位,指数指数占占3位位.数值按数值按标准化指数形式输出标准化指数形式输出(小数点前有小数点前有1位非零数字)。位非零数字)。 例如例如: printf(“%e”,123.456); 输出输出:1.234560e+002 e格式输出的实数共占格式输出的实数共占13列宽度列宽度. 3位位6位位17(9)g格式符格式符:根据数值的大小输出实数根据数值的大小输出实数,自动选自动选 f 格式或格式

14、或 e 格式,格式,(10)选择输出时占宽度较小的一种选择输出时占宽度较小的一种,且不输出无意义的零。且不输出无意义的零。(11) 例如:例如: f=123.468;(12) printf(“%f %e %g”,f,f,f); 输出如下输出如下:123.468000 1.234680e+002 123.46810列列13列列10列列18几点说明:几点说明:1. 1. 格式控制串的控制符号与变量表要一一对应,即:格式控制串的控制符号与变量表要一一对应,即:类型相同类型相同,个数相等个数相等2. 2. 格式控制符号用小写字母格式控制符号用小写字母3. 3. 格式控制符号之外的符号均照原样显示格式控

15、制符号之外的符号均照原样显示4. 4. 若需显示百分号,格式为:若需显示百分号,格式为:%5. 5. 如果实际数据所占字符位大于指定的域宽,如果实际数据所占字符位大于指定的域宽,按实际按实际输出输出194.1.2 4.1.2 字符输出函数字符输出函数格式:格式: putchar(字符变量)或字符变量)或 putchar(字符常量)字符常量)功能功能 :在标准输出设备上,输出指定的字符。:在标准输出设备上,输出指定的字符。说明说明:一次调用只能输出一个字符。一次调用只能输出一个字符。例例:#include main( ) char a,b,c; a=B;b=O;c=Y; putchar(a);p

16、utchar(b);putchar(c);输出:输出:BOY204.2.1 4.2.1 格式输入函数格式输入函数格式输入函数格式输入函数 一般形式一般形式: : scanfscanf( (格式控制字符串格式控制字符串, , 地址表列地址表列) ) “格式控制字符串格式控制字符串”的含义同的含义同printfprintf函数函数, , “地址表列地址表列”:要求是:要求是变量的地址变量的地址, ,或字符串的首地址或字符串的首地址. . 例如例如: : intint a,b,c; a,b,c; scanf(scanf(“%d%d%d%d%d%d”, ,& &a,a,& &b,b,& &c c);

17、/*); /*输入十进制有符号整型数输入十进制有符号整型数* */ / float float a,b,ca,b,c; ; scanf(scanf(“%f%f%f%f%f%f”, ,& &a,a,& &b,b,& &c c); /*); /*输入十进制有符号小数输入十进制有符号小数* */ / 输入数据:输入数据: 10 20 30 10 20 30 4.2 数据的输入数据的输入21格式控制字符串中若包含格式控制字符串中若包含普通字符普通字符,则输入,则输入时必须照原样输入普通字符,否则将导致输时必须照原样输入普通字符,否则将导致输入结束。入结束。 如:如: intint a,b,ca,b,c

18、; ; scanf(scanf(“a a=%=%d,bd,b=%=%d,cd,c=%=%d d”,&a,&b,&c,&a,&b,&c);); 输入:输入:a=1,b=2,c=3a=1,b=2,c=3 22数值型数据和字符型数据混合输入数值型数据和字符型数据混合输入 main()main() intint a,b,c,d,ea,b,c,d,e; ; scanf(scanf(“%d%c%c%c%d%d%c%c%c%d”,&a,&b,&c,&d,&e,&a,&b,&c,&d,&e); ); printf(printf(“a a=%=%d,bd,b=%=%c,cc,c=%=%c,dc,d=%=%c,e

19、c,e=%=%d d”,a,b,a,b, , c,d,ec,d,e);); 输入:输入:123123a ab bc c789789 输出:输出:a=123,b=a=123,b=a,ca,c= =b,db,d= =c,ec,e=789=78923 * * 输入时不允许规定精度,可以指定域宽输入时不允许规定精度,可以指定域宽int a ;scanf(“%3d”,&a); float x; scanf(“%8.2f ”,&x);int k; scanf(“%3d”,&k);输入:输入:123456789k为:为:123scanf(scanf(“%3d%3d%3d%3d”,&a,&b); ,&a,&b

20、); 输入输入123456123456系统自动将系统自动将123123赋给赋给a,456a,456赋给赋给b b24l输入输入doubledouble型数据型数据, ,必须用格式说明符必须用格式说明符%lf%lf或或%le%le,l输入输入longlong型数据,必须用型数据,必须用%ld%ld。l标准标准C C在在scanfscanf中不使用中不使用%u%u说明符说明符, ,对对unsignedunsigned型数型数据据, ,以以%d%d或或%o%o、%x%x格式格式输入。输入。l% %后的后的“* *”为附加说明符为附加说明符, ,用来表示跳过它相应的用来表示跳过它相应的数据。数据。l输

21、入时格式控制符中不能加输入时格式控制符中不能加“nn”。l在在scanfscanf函数的格式控制字符串中尽量不要出现普函数的格式控制字符串中尽量不要出现普通字符,尤其不能将输入提示放在其中。需要显示通字符,尤其不能将输入提示放在其中。需要显示输入提示应该调用输入提示应该调用printfprintf函数实现。函数实现。提示注意:提示注意:25#include main() int a; float b,c; scanf(“%2d%3f%4f”,&a,&b,&c); printf(“a=%d,b=%f,c=%fn”,a,b,c); 输入:输入:12345678987654321输出输出?a=12,

22、b=345.000000,c=6789.000000例例:264.2. 2 getchar函数函数(字符输入函数字符输入函数)一般形式:一般形式:getchar( ) -没有参数没有参数功能:从键盘输入一个字符。功能:从键盘输入一个字符。说明:说明:1)只能输入一个字符)只能输入一个字符 2)可以将获得的字符赋给)可以将获得的字符赋给int 型或型或char型的变量型的变量 例例 #include main() char c; c=getchar( ); putchar(c); 运行时键入字符运行时键入字符a,则其输出为:则其输出为:a 27本章学习要点1.格式输入函数格式输入函数:scanf

23、, 格式输出函数格式输出函数:printf, 常用格式:常用格式:%d, %f, %s, %c ,%o, %ld2. scanf 函数中的函数中的“格式控制格式控制”后面是后面是变量地址变量地址,而不而不是变量名是变量名.3. putchar函数(字符输出函数)函数(字符输出函数)4. getchar函数函数 (字符输入函数字符输入函数)注意注意:28实验的准备及VC+6.0上机环境1. 1. 计算机程序设计实验的准备计算机程序设计实验的准备(1 1)复习与本次实验相关的教学内容和主要知识点。)复习与本次实验相关的教学内容和主要知识点。(2 2)准备好编程题目程序流程图和全部源程序代码,)准备

24、好编程题目程序流程图和全部源程序代码,并且先进行人工检查。并且先进行人工检查。(3 3)对程序中有疑问的地方做出标记,充分估计程序)对程序中有疑问的地方做出标记,充分估计程序运行中可能出现的问题,以便在程序调试过程中给运行中可能出现的问题,以便在程序调试过程中给予关注。予关注。(4 4)准备好运行和调试程序所需的数据。)准备好运行和调试程序所需的数据。 (5 5) 程序中必须是英文字符。程序中必须是英文字符。292. 2. VC+6.0上机环境上机环境(1 1)每一个)每一个C C程序必须包含在一个工程项目程序必须包含在一个工程项目 (Project)Project)中。一个工程可以包含中。一

25、个工程可以包含多个多个C C程序程序,但,但只能有一个只能有一个mainmain函数函数。(2 2)可以在编辑窗口直接输入程序,也可以)可以在编辑窗口直接输入程序,也可以在工程在工程项目中添加已经存在的项目中添加已经存在的C源程序。源程序。()提交作业:提交()提交作业:提交.c,.c,和和.exe.exe程序。程序。()建议工程保留在盘以外的磁盘中。()建议工程保留在盘以外的磁盘中。30 求华氏温度求华氏温度100F100F对应的摄氏温度对应的摄氏温度例例计算公式:计算公式:C=5*C=5*(F-32F-32)/9/9开始F=100C=5*C=5*(F-32F-32)/9/9结束输出 F, C #include main() int F, C; F=100; C= 5*(F-32)/9.0;5*(F-32)/9.0; printf(“F= %d ,C= %f n”, F,C) ; 31

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号