第3章数据的输入和输出_第1页
第3章数据的输入和输出_第2页
第3章数据的输入和输出_第3页
第3章数据的输入和输出_第4页
第3章数据的输入和输出_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

数据的输入与输出数据输入与输出

C语言无I/O语句,I/O操作由函数实现

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

预处理语句,使用标准的输入输出函数时要包含该预处理,用printf和scanf时可以省学习目标字符输出函数putchar字符输入函数getchar格式输出函数printf格式输入函数scanf重点难点:格式控制、格式说明符3.1字符输出函数格式:putchar(c)参数:c为字符常量、变量或表达式功能:把字符c输出到显示器上返值:正常,为显示的代码值;出错,为EOF(-1)函数名参数#include<stdio.h>voidmain(){int

a,b,c; chard,e; a=55;b=56; c=72;d='e'; e='l';

putchar(c);

putchar(d);

putchar(e);

putchar(e);

putchar(a+b);

putchar('\n');}运行结果为:hello思考:例子:#include"stdio.h"main(){chara,b;a='h';b='i';putchar(a);putchar(b);}运行结果为:Hi3-2字符输入函数格式:getchar()功能:从键盘读一字符返值:正常,返回读取的代码值;出错,返回EOF(-1)#include<stdio.h>main(){charc;c=getchar();

printf(“c=%c\n",c);

printf(“c=%d\n",c);}运行结果:AA653-3格式输出函数格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1)输出列表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:

%[修饰符]格式字符

,用于指定输出格式普通字符或转义序列:原样输出格式字符如:printf(“a=%d,b=%d”,a,b);普通字符格式说明输出列表d,ix,Xoucse,Efg%%十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身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+02567.789000567.789%说明 格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应格式字符与输出项类型不一致,自动按指定格式输出格式字符表整型数据输出:例子3-2#include"stdio.h"main(){unsignedinta=4294967295;intb=-1;printf("a=%d,%o,%x,%u\n",a,a,a,a);printf("b=%d,%o,%x,%u\n",b,b,b,b);}整型数据输出:%d为有符号输出,其它为无符号输出429496729511111111111111111111111111111111其它数据输出注意点:实型数据1、%f输出数据时,整数部分全部输出,小数部分固定输出6位(例子:3-3

)2、%g输出数据时,系统自己选择输出形式,使输出数据最小。3、%e格式实型数据输出,小数点前必须有且只有1位非零数字,指定6位,e占1位,指数符呈占1位,指数占3位,如下列为13位,例子3-5:main(){printf(”%e”,123.456);}

1.234560e+002%e:目前有些系统,输出数据宽度共占11位(TurboC2.0中),其中整数部分非零数字占1位,小数点占1位,小数部分占5位,指数部分占4位(e占1位,指数符号占1位,指数占2位)。

1.23456e+02字符型数据字符内存中存放的是ASCII字符,可以以字符和整数形式输出float有效位7~8位,double有效位为15~16位,超过部分就不准确例子:3-3main(){floata,b;doublec,d;a=222222.222f;b=333333.333;c=3333333333333.333333333;d=4444444444444.444444444;printf("%f\n",a+b);printf("%f\n",c+d);}程序结果:例子:3-5main(){charc=‘a’;intd=98;printf(“%c,%d\n”,c,c);printf(“%c,%d\n”,d,d);printf(“%s\n”,”CHINA”);}程序结果:a,97b,98CHINA.n对实数,指定小数点后位数(四舍五入)修饰符功能m输出数据域宽,数据长度<m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l附加格式说明符(修饰符)对字符串,指定实际输出位数例子3-7#include<stdio.h>voidmain(){

int

a,b; longintc=1234567; a=123,b=12345;printf("%4d,%4d\n",a,b);

printf("%d\n",c);

printf("%Lo\n",c); printf("%8o\n",c);

printf("%lx\n",c); printf("%8x\n",c);}例子:3-83-9main(){floatf=123.456f;printf(“%f,%10.2f,%-10.2f\n”,f,f,f);}结果为:123.456001,︺︺︺︺123.46,123.46︺︺︺︺%f:整数部分全部输出,小数部分输出6位。%m.nf(或%-m.nf):输出数据占m列(包括整数部分、小数点和小数部分),小数位数为n位。如果数值宽度小于m,则数值靠右(左)对齐,左边(或右边)补空格;如果数值宽度大于m,按实际长度输出。

例子:3-83-9扩展main(){floatf=123.456f;printf("%e,%10e,%10.2e,%.2e,%-10.2e\n",f,f,f,f,f);}%m.ne(或%-m.ne):输出数据占m列,尾数部分小数位数为n位。如果数值宽度小于m,则数值靠右(左)对齐,左边(或右边)补空格;如果数值宽度大于m,按实际长度输出。

%e:目前有些系统,输出数据宽度共占13位(vc++中),其中整数部分非零数字占1位,小数点占1位,小数部分占6位,指数部分占5位(e占1位,指数符号占1位,指数占3位)。指定n值时,n为小数点和小数位数。程序结果:1.234560e+002,1.234560e+02,︺

1.23e+002,1.23e+002,1.23e+002

︺同样可以指定字符或者字符串宽度intc=‘a’;printf(“%4c”,c);︺︺︺a程序结果:HELLO,︺HELLO,HELLO︺︺,︺︺︺︺HEL,HEL︺︺︺︺main(){printf("%3s,%6s,%-7s","HELLO","HELLO","HELLO“);printf("%7.3s,%-7.3s\n","HELLO","HELLO");}例inta=1234;floatf=123.456f;printf(“%08d\n”,a);printf(“%010.2f\n”,f);printf(“%0+8d\n”,a);printf(“0+10.2f\n”,f);0、+例inta=123;

printf(“%o,%#o,%X,%#X\n”,a,a,a,a);

例#例longa=65536;printf(“%d,%8ld\n”,a,a);

例l0000

00

00

00

00

00010000

00

00

00

00

00

00//00001234//0000123.46//000+1234//000+123.56//173,0173,7B,0X7B//0,65536例输出类型要匹配,否则可能出错3-4格式输入函数格式:scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返值:正常,返回输入数据个数例如:scanf(“%d%d%d”,&a,&b,&c)格式控制串地址表地址表:变量的地址,常用取地址运算符&格式字符:d,o,x,u,c,s,f,e例scanf(“%d”,&a);

输入:10

则a=10例scanf(“%x”,&a);

输入:11

则a=17附加格式说明符(修饰符)l修饰符功能hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);

输入19991015

则1999yy,10mm,15dd修饰符功能例scanf(“%3d,%*3d%2d”,&a,&b);

输入123,456,78

则123a,78b一般以空格、TAB或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符例scanf(“%d%o%x”,&a,&b,&c);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

输入123123123

则a=123,b=83,c=291例scanf(“%d:%d:%d”,&h,&m,&s);

输入12:30:45

则12h,30m,45s例scanf(“%d,%d”,&a,&b)

输入3,4

则3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

输入a=12,b=24,c=36输入分隔符的指定

用“%c”格式符时,空格和转义字符作为有效字符输入如scanf(“%c%c%c”,&c1,&c2,&c3);

若输入abc

则ac1,c2,bc3输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车遇宽度结束遇非法输入如scanf(“%d%c%f”,&a,&b,&c);

若输入1234a123o.26

则1234a,

温馨提示

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

评论

0/150

提交评论