数据的输入与输出课件_第1页
数据的输入与输出课件_第2页
数据的输入与输出课件_第3页
数据的输入与输出课件_第4页
数据的输入与输出课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1.输入输出通过调用标准库函数本来实现

1)标准库函数在附录D中给出

2)标准库函数通过#include命令将有关的头文件包含到用户原程序中才能使用调用标准输入输出函数,文件开头要有预编译命令:

#include<stdio.h>或#include“stdio.h”

2.函数调用语句格式:

函数名([实参表]);

3.常用的输入输出函数:

1)字符输入/输出函数:getchar、putchar;

2)格式化输入/输出函数:scanf、printf;

3)字符串输入/输出函数:gets、puts3.3数据的输入与输出3.3.1字符的输入和输出

1.getchar函数

1)函数格式:getchar()2)功能:从键盘上输入一个字符,返回该字符的ASC码值

3)字符输入语句:变量=getchar();

charc;c=getchar();//函数不带参数

2.putchar()函数

1)调用格式:putchar(参数);

2)功能:将字符变量的内容写到屏幕上

3)参数:字符变量或字符常量【例】putchar(‘8’);//输出字符8putchar(‘B’);//直接输出字母Bputchar(c);//输出字符变量C的值例3-8:从键盘连续输入三个字符,将它们反序输出#include<stdio.h>voidmain(){charch1,ch2,ch3;printf("inputthreecharacters:\n");ch1=getchar();/*调用字符输入函数*/ch2=getchar();ch3=getchar();putchar(ch3);/*调用字符输出函数*/putchar(ch2);putchar(ch1);}运行程序时屏幕显示inputthreecharacters:键盘输入:abc(按【Enter】键)屏幕显示:cba一.格式化输出【例】从屏幕上输出一个整数#include<stdio.h>voidmain(){ inta=10;b=20;printf(“输出变量a和b的值:”);printf(“a=%d,b=%d\n”,a,b);}1、printf()函数

格式:printf(格式控制字符串,[输出项表列]);如:printf(“a=%d,b=%d\n”,a,b);

3.3.2格式化输入与输出2格式控制字符串格式控制字符串用于指定输出格式,可由格式字符串和非格式字符串两种组成。非格式字符串由普通字符和转义字符组成格式字符串是以%开头的字符串,在%后面跟各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如“%d”表示按十进制整型输出,“%ld”表示按十进制长整型输出,“%c”表示按字符型输出等。(1)普通字符:在输出时,普通字符要原样输出,主要用于输出提示信息。(2)转义字符:转义字符指明特定的操作,如‘\n’表示换行。(3)格式控制符:用来指定输出列表项中各数据的输出类型,格式字符的位置显示对应的输出项的值,具体的字符和含义如表3-2所示。

3、输出项表列输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上一一对应。输出项可以是常量、变量或表达式,输出项之间用逗号隔开。如:printf(“a=%d,b=%d\n”,a,b);两个格式控制符%d%d

对应两个输出项a,b表3-2格式控制字符和意义格式字符格式字符意义d以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀O)x以十六进制形式输出无符号整数(不输出前缀OX)u以十进制形式输出无符号整数f以小数形式输出单、双精度实数e以指数形式输出单、双精度实数g以%f%e中较短的输出宽度输出单、双精度实数c输出单个字符s输出字符串例3-9:写出下列程序的执行结果。#include<stdio.h>voidmain(){inta=3,b=4;printf(“outputtwodata:\n”);printf(“%d,%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);} 程序的运行结果:outputtwodata:3,4a=3,b=4完整的格式说明还包括一些修饰符,其形式为:

%[标志][宽度][.精度][长度]格式控制符其中,方括号[]中的项为可选项,表示格式修饰符:4、格式修饰符修饰字符含义长度l在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型宽度m指定输出数据域宽,数据长度<m,左补空格;否则按实际输出精度.n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数-输出数据在域内左对齐(缺省右对齐)+输出有符号数的正负号(+或-)#在八进制和十六进制数前显示前导0,0x0输出数值时指定左面不使用的空位置自动填0A、宽度(m)

用十进制整数来表示数据输出所占的位数。若实际位数大于定义的宽度,则按实际位数输出,若实际位数小于定义的宽度则补以空格例3-10:写出下列程序的执行结果。#include<stdio.h>voidmain(){intx=567;printf(“%d\n”,x);printf(“%3d\n”,x);//宽度为3printf(“%8d\n”,x);//宽度为8}分析:第一条输出语句中,没指定输出宽度,按实际位数输出,占3位;第二条输出语句中,指定宽度为3,宽度与实际位数一致,也占3位;第三条输出语句中,指定宽度为8,大于数据的实际位数,在数据左侧补5个空格,再输出3位数据。程序运行结果:567567

567/*数据567左边有5个空格*/例3-11:写出下列程序的执行结果。#include<stdio.h>voidmain(){printf("%10s\n","apple");printf("%3s\n","apple");printf("%10f\n",12.76543);printf("%15f\n",12.76543);}程序运行结果:appleapple12.76543012.765430B、精度(.n)

精度格式符以“.”开头,后跟十进制整数。

本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符串,则表示输出字符的个数。

若实际位数大于所定义的精度数,则截去超过的部分,若是实数会对小数部分四舍五入。

例如:%m.nf:表示输出的数据共占m列,其中有n位小数。如果数值长度小于m,则在左端补空格。

%m.ns:表示输出共占m列,但只取字符串左端n个字符,这n个字符输出在m列的右侧,左补空格。例3-12:写出下列程序的执行结果。#include<stdio.h>voidmain(){printf(“%10.3f\n”,1000.7654321);printf(“%10.3f\n”,1111000.7654321);printf(“%8.2s\n”,”Name”);}分析:第一条输出语句中,小数占3位,小数点占1位,整数占4位,但指定的输出宽度为10,所以在输出结果左边补2个空格;第二条输出语句中,指定小数占3位,小数点占1位,整数占7位,3+1+7=11,超出了指定的输出宽度10,整数部分按实际位数输出;第三条输出语句,截取字符串前2个字符,由于输出宽度为8,在左端补6个空格。程序的运行结果:1000.7651111000.765NaC、标志标志字符有‘-’、‘+’、‘#’和‘0’四种,含义见上表。例3-13:写出下列程序的执行结果。#include<stdio.h>voidmain(){printf(“%13f\n”,100.76543);printf(“%-13f\n”,100.76543);//-号表示左齐printf(“%+13f\n”,100.76543);//+号表示显示正负号printf(“%+13f\n”,-100.76543);}程序的运行结果:100.765430100.765430+100.765430-100.765430#include<stdio.h>voidmain(){inta=1234;floatf=123.456;printf(“%0+8d\n”,a);printf(“%0+10.2f\n”,f);}

例3-13b:写出下列程序的执行结果。2、格式化输入函数--scanfscanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,与printf函数相同。(1)一般形式:

scanf(“格式控制字符串”,地址表列);

功能:从标准输入设备(stdin,如:键盘)读取输入的信息,可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。说明:①格式控制字符串的作用与printf()函数相同。②地址表列中给出各变量的地址。例3-14:格式输入函数示例一。#include<stdio.h>voidmain(){inta,b,c;printf("inputa,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);}程序运行:inputa,b,c输入369输出a=3,b=6,c=9(3)格式字符串使用说明格式字符串的一般形式为:%[*][输入数据宽度][长度]类型其中有方括号[]的项为任选项。各项的意义如下:①类型表示输入数据的类型,其格式符和意义如表3-2所示。②“*”符“*”表示该输入项读入后不赋予相应的变量,即跳过该输入值。例如:scanf("%d%*d%d",&a,&b);当输入为:123时,把1赋予a,2被跳过,3赋予b。③宽度用十进制整数指定输入的宽度(即字符数)。例如:scanf("%5d",&a);当输入:12345678只把12345赋予变量a,其余部分被截去。又如:scanf("%4d%4d",&a,&b);当输入:12345678将把1234赋予a,而把5678赋予b。④长度长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。h表示输入短整型数据。①scanf函数中没有精度控制,如:scanf("%5.2f",&a);是非法的。不能企图用此语句输入小数部分为2位的实数

温馨提示

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

评论

0/150

提交评论