《《c语言程序设计教学资料》第4章-键盘输入与屏幕输出.ppt》由会员分享,可在线阅读,更多相关《《c语言程序设计教学资料》第4章-键盘输入与屏幕输出.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章键盘输键盘输入与屏幕入与屏幕输输出出第四章键盘输入与屏幕输出第四章键盘输入与屏幕输出 内容提要:内容提要:字符输入输出函数格式输入输出函数p 所谓输入输出是以计算机主机为主体而言的 输出输出:从计算机向外部输出设备(显示器,打印机)输出数据。输入输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据。p C语言本身不提供输入输出语句,输入和输出操作是由C函数库 中的函数来实现的 例如:例如:字符输入函数:getchar 字符输出函数:putchar 格式输入函数:scanf 格式输出函数:printfp 使用库函数时,要用预编译指令#include将有关的“头文件”,即:stdio
2、.h,包括到用户源文件中#include 或#include“stdio.h”字符输出p 字符输出函数-格式:putchar(c)-参数:c为字符或整型常量、变量或表达式-功能:把字符c输出到显示器上例:先后输出BOY三个字符。字符输出#include main()char a=B,b=O,c=Y;putchar(a);putchar(b);putchar(c);putchar(n);运行结果:BOY字符输入p 字符输入函数-格式:getchar()无参数-功能:接收从键盘输入的一个字符 函数值为输入的字符值 当输入多个字符时,多余字符作废例:输入单个字符。#includevoid main(
3、)char c;c=getchar();putchar(c);putchar(n);运行程序:从键盘输入字符a按Enter键屏幕上将显示输出的字符aaa字符输入字符输入/输出例:从键盘输入一个大写英文字母,将其转换为小写字母后,再显示到屏幕上。#include main()char ch;printf(“press a key and then press enter:”);ch=getchar();ch=ch+32;putchar(ch);putchar(n);运行结果:press a key and then press enter:B bgetchar()没有参数没有参数getchar(
4、ch)错错例:从键盘输入BOY三个字符,然后把它们输出到屏幕。解题思路:l用3个getchar函数先后从键盘向计算机输入BOY三个字符l用putchar函数输出字符输入/输出#include main()char a,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);putchar(n);运行结果:BOY字符输入/输出#include main()char a,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(
5、c);putchar(n);putchar(getchar();字符输入/输出#include main()char a,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);putchar(n);putchar(getchar();putchar(getchar();字符输入/输出#include main()char a,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);putchar(n);putcha
6、r(getchar();putchar(getchar();putchar(getchar();字符输入/输出#include main()char a,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);putchar(n);putchar(getchar();putchar(getchar();putchar(getchar();运行结果:BOY字符输入/输出格式化输出p 格式输出函数:-printf(“格式控制字符串”);-printf(“格式控制字符串”,输出参数表);普通字符或转义序列格式命
7、令:以%开始,%(格式修饰符)格式字符,用于指定输出格式 输出表列:要输出的数据(多个时以“,”分隔)格式控制字符串:格式化输出 例:printf(“press a key and then press enter:”);printf(“a=%d b=%fn”,a,b);转义字符普通字符串格式说明输出参数表 例:printf(“welcomentonBeijing!n”);输出:welcome to Beijing!格式化输出#include main()char ch;printf(“press a key and then press enter:”);ch=getchar();ch=ch
8、+32;printf(“%c,%dn”,ch,ch);例:从键盘输入一个大写英文字母,将其转换为小写字母后,再将转换后的小写字母及十进制ASCII码值显示到屏幕上。结果:press a key and then press enter:B b,98格式字符函数printf()的格式转换说明格式字符格式字符用法用法d以带符号十进制整数输出o以无符号八进制整数输出(无前导0)x以无符号十六进制整数(小写)输出(无前导0 x)X以无符号十六进制整数(大写)输出(无前导0 x)u以无符号十进制整数输出 c以字符形式输出单个字符s输出一个字符串f以小数形式输出浮点数(6位小数)e以标准指数形式(小写e表
9、示指数部分)输出浮点数(6位小数)E以标准指数形式(大写E表示指数部分)输出浮点数(6位小数)g自动选用%f,%e中输出宽度较小的一种格式%输出%格式修饰符函数printf()的附加格式转换说明格式修饰符格式修饰符用法用法llong型数据,修饰d,o,x,uLlong double型数据,修饰f,e,gm数据所占用的宽度(m为整数)数据宽度大于m,按实际宽度输出数据看度小于m,右靠齐,左边多余补空格.n对实数输出n位小数对于浮点数,用于指定输出浮点数的小数位对于字符串,用于指定从字符串左侧开始截取的子字符串个数hshort型数据,修饰d,o,x-输出的数据向左对齐0指定空格填0格式化输出%-0
10、 m.n l/h d(x)格式说明引导符号指定左对齐输出指定空位填0指定输出域及精度输出长度修正指定输出数据类型格式字符格式修饰符%格式符格式符用来输出十进制整数。几种用法:按十进制整型数据的实际长度输出。md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。例:printf(4d,4d,a,b);若a123,d12345,则输出结果为 123,12345 ld:输出长整型数据。例:long a135790;/*定义a为长整型变量*/printf(ld,a);%格式符格式符以八进制整数形式输出。例:int a=-1;printf(%d,%o,a,a)
11、;-1在内存单元中的存放形式(以补码形式存放)如下:输出为:-1,177777对长整数(long型)可以用“lo”格式输出。还可以指定字段宽度,例:printf(8o,a);输出为:177777。(数字前有2个空格)%s格式符格式符 输出字符串。s。例如:printf(s,CHINA)输出字符串“CHINA”(不包括双引号)。%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左补空格。%-ms,若串长小于m,字符串向左靠,右补空格。%m.ns,输出占m列,只取字符串中左端n个字符,字符串向右靠,左补空格。%-m.ns,n个字符输出在m列的左侧,右补空格,若nm,m自动取n值
12、。例例4.54.5字符串的输出。#includevoid main()printf(“%3sn%7.2sn%.4sn%-5.3sn”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);%格式符格式符用来以小数形式输出实数(包括单双精度)有以下几种用法:f。不指定字段宽度,由系统自动指定字段宽度,使整数部分全部输出,并输出6位小数。应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为7位。m.nf。指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。-m.nf与m.nf基本相同,只是使输出的数值向左端靠,右端补空格。输出实数时的有效位
13、数。#include void main()float,;111111.111;222222.222;printf(f,);例4.8 输出实数时指定小数位数。#include void ain()float f=123.456;printf(“%fn%10fn%10.2fn%.2fn%-10.2fn”,f,f,f,f,f);%e%e格式符格式符指定以指数形式输出实数VC+给出小数位数为6位 指数部分占5列 小数点前必须有而且只有1位非零数字 printf(”%e”,123.456);输出:1.234560 e+002%m.ne printf(”%13.2e”,123.456);输出:1.23e
14、+002 (前面有4个空格)例:例:m.n格式化输出例:int a=1234;float f=123.456;char ch=a;printf(“%8dn%2dn”,a,a);printf(“%fn%8fn%8.1fn%.2fn%.2en”,f,f,f,f,f);printf(“%3cn”,ch);例:例:-格式化输出 int a=1234;float f=123.456;static char c=“Hello,world!”;printf(“%8dn%-8dn”,a,a);printf(“%10.2fn%-10.1fn”,f,f);printf(“%10.5sn%-10.3sn”,c,c)
15、;格式化输出printf(”%f”,1.0/3);printf(%20.15f,1/3);printf(%.0f”,10000/3.0);printf(%e,123.456);格式化输入p 格式输入函数:-格式:scanf(“格式控制字符串”,&参数地址表);-功能:按指定格式从键盘读入数据,存入地址 表指定的存储单元中,并按回车键结束例:scanf(“%d,%f”,&a,&b);普通字符格式说明地址表格式化输入函数scanf()的格式转换说明格式字符格式字符用法用法d以带符号十进制形式输入整数数据o以八进制无符号形式输入(无前导0)x以十六进无符号制形式输入(无前导0 x)c以字符形式输入单
16、个字符s输入字符串,以非空字符开始,遇第一个空格字符结束f以小数形式输入浮点数e以标准指数形式输入浮点数%输入%格式化输入函数scanf()的附加格式转换说明格式修饰符格式修饰符用法用法l输入long型数据,修饰d,o,x,uLlong double型数据,修饰f,em数据所占用的宽度(m为整数)数据宽度大于m,按实际宽度输出数据看度小于m,右靠齐,左边多余补空格hshort型数据,修饰d,o,x*本输入项在读入后不赋给相应的变量注意:(1)函数scanf()没有精度修饰符.n,即用scanf()输入实型数据时不能规定精度。(2)数据输入遇到空格、回车符、制表符(Tab)、遇到非法字符输入,或
17、到达输入域宽度时认为输入数据结束。格式化输入%*m l/h d(x)格式说明起始符号附加说明符域宽说明符长度修正输入数据类型格式化输入使用scanf函数应注意:(1)输入数据时不能规定精度(2)如果在“格式控制字符串”中储量格式说明以外还有其它字符,则在输入数据时应该输入与这些字符相同的字符(3)在用%c格式输入字符时,空格字符和转义字符都作为有效字符输入 例:scanf(“%c%c%c”,&c1,&c2,&c3);输入:a b c 则c1=a,c2=“”,c3=b 格式化输入使用scanf函数时常见错误(1)scanf(“%f%f%f”,a,b,c);错 scanf(“%f%f%f”,&a,
18、&b,&c);对(2)scanf(“a=%f,b=%f,c=%f”&a,&b,&c);1 3 2 错 a=1,b=3,c=2 对 a=1 b=3 c=2 错(3)scanf(“%c%c%c”,&c1,&c2,&c3);abc 对 a b c 错(4)scanf(“%7.2f”,&a);错格式化输入例:#include main()int a,b;printf(“please input a and b:”);scanf(“%2d%*2d%2d”,&a,&b);printf(“a=%d,b=%d,a+b=%dn”,a,b,a+b);运行结果:please input a and b:123456%2d表示读入2位整数但不赋给任何变量。也就是说第2个数据被跳过 a=12,b=56,a+b=68格式化输入/输出p scanf()和printf()参数列表的区别-printf()使用变量名、常亮、符号常量和表达式-scanf()使用变量地址使用scanf()时,参数列表应遵循以下规则:-读取基本数据类型的变量值,应在变量名前加&-读取指针变量指向的值时,在变量明前不加&