第4章键盘输入和屏幕输出_第1页
第4章键盘输入和屏幕输出_第2页
第4章键盘输入和屏幕输出_第3页
第4章键盘输入和屏幕输出_第4页
第4章键盘输入和屏幕输出_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章键盘输入和屏幕输出本章学习内容

字符常量与转义字符字符输出函数putchar()字符输入函数getchar()

数据的格式化输出函数printf()数据的格式化输入函数scanf()第4章键盘输入和屏幕输出4.1单个字符的输入/输出4.2数据的格式化屏幕输出4.3数据的格式化键盘输入4.1.1字符常量C中的字符常量是用单引号括起来的一个字符。例如,‘a’是字符常量,而a则是一个标识符。再如,‘3’表示一个字符常量,而3则表示一个整数。4.1.1字符常量(续)把字符放在一对单引号里的做法,适用于多数可打印字符,但不适用于某些控制字符(如回车、换行符等)。因此,C语言引入了另外一种特殊形式的字符常量—转义字符。它是以反斜线(\)开头的字符序列,它有特殊的含义,用于描述特定的控制字符。作为字符使用时,同样要放到一对单引号内。4.1.1字符常量(续)表4-1常用的转义字符4.1.1字符常量(续)字符型变量的取值范围取决于计算机系统所使用的字符集。目前计算上广泛使用的字符集是ASCII码(美国标准信息交换码)字符集。该字符集规定了每个字符所对应的编码,即在字符序列中的“序号”。也就是说,每个字符都有一个等价的整型值与其相对应,这个整型值就是该字符的ASCII码。例如:字符‘A’的ASCII码为65。从这个意义上讲,可将char型看成是一种特殊的int型。4.1.1字符常量(续)在ASCII码取值范围内,对char型数据和int型数据进行相互转换不会丢失信息,二者可以进行混合运算。同时,一个char型数据既能以字符型格式输出,也能以整型格式输出,以整型格式输出时就是直接输出其ASCII码的十进制值。5和‘5’的区别???4.1.2字符的输入/输出getchar()和putchar()是C标准函数库中专门用于字符输入/输出的函数。函数putchar()的作用是把一个字符输出到屏幕的当前光标位置。函数getchar()的作用是从系统隐含指定的输入设计输入一个字符,按回车表示输入结束,读入的字符会自动被回显到屏幕上。例4.1[例4.1]从键盘输入一个大写英文字母,将其转换为小写字母后,再显示到屏幕上。[问题求解方法分析]观察附录D中的常用ASCII字符表,可以发现这样一个规律,即小写英文字母的ASCII码值比相应的大写英文字母的ASCII码值大32。根据这一规律,可轻松实现大小写英文字母之间的转换。【例4.1】大小写英文字母转换PressakeyandthenpressEnter:B↙b

ch=ch-('a'–'A');

Whatdoesthisstatementmean?/*从键盘输入一个字符,回车结束输入*/第4章键盘输入和屏幕输出4.1单个字符的输入/输出4.2数据的格式化屏幕输出4.3数据的格式化键盘输入1.函数printf()的一般格式两种格式:printf(格式控制字符串);printf(格式控制字符串,输出值参数表);其中,格式控制字符串是用双引号括起来的字符串,一般包括两部分:格式转换说明和需要原样输出的普通字符。格式转换说明由%开始,并以转换字符结束,用于指定各输出值参数的输出格式。表4-2函数printf()的格式转换说明1.函数printf()的一般格式(续)输出值参数表是需要输出的项的列表,输出数据项可以是变量或表达式,输出值参数之间用逗号分隔,其类型应与格式转换说明符相匹配每个格式转换说明符和输出值参数表中的输出值参数一一对应,没有输出值参数时,格式控制字符串中不再需要格式转换说明符。举例:printf(格式控制字符串,输出项列表);printf("a=%db=%f",a,b);可以输出若干任意类型的数据

函数名可选输出列表普通字符格式说明1.函数printf()的一般格式(续)2.函数printf()中的格式修饰符在函数printf()的格式说明中,可在%和格式符中间插入如表4-3所示的格式修饰符,用于对输出格式进行微调,如指定输出数据域宽、显示精度、左对齐等。表4-3函数printf()的格式修饰符Inputr:5.3↙printfWITHOUTwidthorprecisionspecifications:circumference=33.300854,area=88.247263printfWITHwidthandprecisionspecifications:circumference=33.30,area=88.25【例4.3】计算圆的周长和面积

#include<stdio.h>main(){constdoublepi=3.14159;doubler,circum,area;printf("Inputr:");scanf("%lf",&r);circum=2*pi*r;area=pi*r*r;printf("printfWITHOUTwidthorprecisionspecifications:\n");printf("circumference=%f,area=%f\n",circum,area);printf("printfWITHwidthandprecisionspecifications:\n");printf("circumference=%7.2f,area=%7.2f\n",circum,area);}第4章键盘输入和屏幕输出4.1单个字符的输入/输出4.2数据的格式化屏幕输出4.3数据的格式化键盘输入1.函数scanf()的一般格式一般格式scanf(格式控制字符串,参数地址表)其中,格式控制字符串是用双引号括起来的字符串,它包括格式转换说明符和分隔符两个部分。格式说明符通常由%开始,并以一个格式字符结束,用于指定各参数的输入格式。表4-4函数scanf()的格式转换说明1.函数scanf()的一般格式(续)参数地址表是由若干变量的地址组成的列表,这些参数之间用逗号分隔。函数scanf()要求必须指定用来接收数据的变量的地址,否则数据不能正确读入指定的内存单元。举例:scanf(格式控制字符串,地址列表);

scanf("%d,%f",&a,&b);格式字符指定输入数据格式输入数据地址列表非格式字符输入数据以,分隔没有时可以空格、Tab或回车分隔1.函数scanf()的一般格式(续)2.函数scanf()中的格式修饰符与printf()类似,在函数scanf()的%和格式符之间也可以插入如表4-5所示的格式修饰符。表4-5函数scanf()的格式修饰符2.函数scanf()中的格式修饰符(续)在用函数scanf()输入数值型数据时,遇到以下几种情况都认为数据输入结束:(1)遇空格符、回车符、制表符(Tab);(2)达到输出域宽;(3)遇非法字符输入。注意:如果scanf()的格式字符串中存在除格式说明以外的其他字符,那么这些字符必须在输入数据时由用户从键盘原样输入。#include<stdio.h>main(){

inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);}Pleaseinputaandb:a=12,b=56,a+b=68123456↙跳过一个输入项举例:利用*跳过一个输入项#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}问题1:当要求程序输出结果为

a=12,b=34时,用户应该如何输入数据?

1234↙输入数据的格式控制——例4.4#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为:12,34↙时,应修改程序中的哪条语句?怎样修改?,

输入数据的格式控制——例4.4#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}问题3:语句scanf("%d%d",&a,&b);修改为scanf("a=%d,b=%d",&a,&b);时,用户应该如何输入数据?a=12,b=34↙输入数据的格式控制——例4.4#include<stdio.h>main(){

inta,b;

scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}

问题4:限定用户输入数据为以下格式

1234↙

同时要求程序输出结果为a=12,b=34%2d%2d

输入数据的格式控制——例4.4#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}

问题5:限定用户输入数据为以下格式12↙34↙

同时要求程序输出结果为a="12",b="34"\"%d\",b=

\"%d\"输入数据的格式控制——例4.4#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其他字符)作为分隔符进行数据的输入输入数据的格式控制——例4.4%*c#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}问题7:输入123456时程序的输出结果是什么?输入数据的格式控制——例4.4%*2da=12,b=56#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}问题8:如果用户输入了非法字符,例如输入了123a,那么程序运行结果如何?输入数据的格式控制——例4.4123a↙a=12,b=3#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}问题9:如果用户输入的是123a,那么结果又会如何呢?输入数据的格式控制——例4.4123a↙a=123,b=-858993460#include<stdio.h>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论