第三章-C语言数据的输入与输出复习_第1页
第三章-C语言数据的输入与输出复习_第2页
第三章-C语言数据的输入与输出复习_第3页
第三章-C语言数据的输入与输出复习_第4页
第三章-C语言数据的输入与输出复习_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

C语言数据的输入与输出复习数据输入输出的概念所谓输入输出是以计算机主机为主体而言的。输出:从计算机向外部输出设备(显示器,打印机)输出数据。输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的例如:字符输入函数:getchar字符输出函数:putchar格式输入函数:scanf格式输出函数:printf字符串输入函数:gets字符串输出函数:puts字符输入输出函数putchar(x)函数:有参数 例:putchar(ch);putchar('A');putchar(65);

每句只能输出一个字符数据。getchar()函数:无参数 从键盘读入一个字符(空格回车都算)。 程序执行到getchar函数时,等待输入字符,直到按回车才结束,回车前的所有输入字符都将逐个显示在屏幕上。但只有第一个字符被getchar函数接收。

c=getchar();按回车符才可送出当使用这两个函数时,在程序的开头一定要加上:

#include<stdio.h>字符输入输出函数getch()函数:无参数。

getch()的作用与getchar类似,都是从标准输入设备(通常指键盘)读入一个字符。其调用形式分别为:

getch(); 但getch函数读入的字符不会回显在屏幕上,它与getchar函数不同之处在于:getch函数不必输入回车才结束,只要输入任意一个键,该字符立即被接收,程序继续执行下一条语句。利用这一特点,这两个函数经常用于交互输入的过程中实现暂停功能,或直接查看程序运行结果。例:输出单个字符#include"stdio.h"main(){chara,b,c;a='A';b='B';c='C';clrscr();putchar(a);putchar(b);putchar(c);putchar('\n');putchar(a);putchar('\n');putchar(b);putchar('\n');putchar(c);}每次只能输出一个字符

putchar('');输出空格运行结果:ABCABC

字符输入输出函数putchar('\101');A运行程序:

从键盘输入字符a

按Enter键

屏幕上将显示输出的字符a

a

a例输入单个字符。

#include"stdio.h"

main()

{

charc;

c=getchar();

putchar(c);

putchar('\n');

}字符输入输出函数3.4.4格式输入函数与格式输出函数printf函数是格式化输出函数,用于向标准输出设备(通常指定为屏幕)按规定格式输出数据。printf函数的调用格式为:printf(格式控制字符串,输出列表);

其中格式化字符串包括两部分内容:一是普通字符按原样输出,转义字符输出它所代表的字符;二是“输出格式说明”,

以“%”开始,后跟格式字符,用来指定输出数据的格式。如%d输出int型数据

输出列表是若干个需要输出的数据项,称为函数的参数,可以是常量、变量或表达式,各参数之间用","分开。格式化输出函数printf()printf函数的输出格式说明 每个格式说明都必须用%开头,以一个格式字符作为结束,在此之间根据需要可以插入"宽度说明"、长度修饰符'l'和'L"等。(1)格式字符:格式字符用于规定输出不同的数据类型,格式字符和它们的作用如下表,可详见附录D。格式化输出函数printf()(2)长度修饰符:长度修饰符加在%和格式字符之间。长度修饰符作用l格式字符是d,i,o,u,x,X时,用于输出长整型数据(longint)L格式字符是e,E,f,g,G时,用于输出长双精度实型数据(longdouble)

从上表可知:双精度实型数据的输出不要用%lf,只要用%f即可。但长双精度实型数据的输出必须加长度修饰符L,例如%Lf、%Le等。格式化输出函数printf()(4)在输出的数字前加"+"号使用%+格式字符(如%+d、%+f等),可在输出的数字前加"+"号,例如

printf("%+d,%+10.2f",123,12345.678);

输出结果如下:+123,+12345.68。例:intx=1234,y=123,z=12;

printf("%4d+%3d+%2d",x,y,z)

输出结果:1234+123+12格式化输出函数printf()(5)输出数据所占的宽度①整型数据的输出宽度

%md、%mu、%mo、%mx,按m宽度输出数据,不足m个位数,左补空格(数据右对齐)。②实型数据的输出宽度

%m.nf、%m.ne、%m.ng,数据输出的总宽占m列,其中小数部分占n列,若数据自身宽度小于m列,则左补空格。③字符串的输出宽度

%ms输出宽度占m列,若字符串宽度小于m列,左补空格,若字符串宽度大于m列则原样输出字串。实型数据的输出宽度main(){floata=123.456;printf("a=%f\n",a);printf("a=%4f\n",a);printf("a=%15f\n",a);printf("a=%.2f\n",a);printf("a=%.5f\n",a);}a=123.456001a=123.456001a=123.456001a=123.46a=123.45600格式化输出函数printf()例输出实数时指定小数位数。

#include"stdio.h"

main()

{

floata=123.456;

printf("*%f*,*%10f*,*%10.2f*\n",a,a,a);

printf("*%-10.2f*,*%.2f*\n",a,a);

}

运行结果:

*123.456001**123.456001**123.46**123.46**123.46*

main(){floata=123.456;clrscr();printf("a=%e\n",a);printf("a=%10e\n",a);printf("a=%10.2e\n",a);printf("a=%-10.2e\n",a);printf("a=%.2e\n",a);}(8)e格式符,以指数形式输出实数a=1.23456e+02a=1.23456e+02a=1.2e+02a=1.2e+02a=1.2e+02格式化输出函数printf()格式化输出函数printf()(9)g格式符,用来输出实数.

它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。例:若a=123.456,则

printf("%f",a);123.456001printf("%g",a);123.456格式化输入函数scanf()scanf函数的功能是从标准输入流中按指定格式接收输入的数据;scanf函数的调用格式为:

scanf(格式控制字符串,地址列表);格式控制字符串同printf地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址格式化输入函数scanf()例:用scanf函数输入数据#include"stdio.h"main(){inta,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d,%d,%d\nf",a,b,c);}运行情况:

345<回车>(输入a,b,c的值)

3,4,5(输出a,b,c的值)a在内存中的地址&是地址运算符格式化输入函数scanf()3、在格式字符串中插入其它字符如果想在屏幕上输入字符来提示,应该使用printf函数;如果用scanf格式控制字符串中插入其它字符,则输入时,要求按一一对应的位置原样输入这些字符;#include"stdio.h"

main()

{inta,b,c;

clrscr();printf(“input:a,b,c\n“);scanf("%d%d%d",&a,&b,&c);

printf("%d,%d,%d\nf",a,b,c);

}scanf(“input:a,b,c:%d%d%d",&a,&b,&c);运行情况:

inputa,b,c:345

格式化输入函数scanf()说明:1、TC环境下,输入long整数时,用%ld;输入double时,用lf;2、格式说明的类型和输入项类型,应该一一匹配;

floata;scanf(“%d”,&a);不合法3、在scanf函数中的格式字符前,可以一个整数指定输入数据所占宽度,但不可对实型数指定小数宽度;

scanf(“%3d”,&a);合法

scanf(“%3.2f”,&a);不合法格式化输入函数scanf()4、在用“%c”格式输入字符时,无需间隔符,在这里,回车、Tab、空格字符和“转义字符”都作为有效字符输入#include"stdio.h"main(){chara,b,c;clrscr();printf("input:\n");

scanf("%c%c%c",&a,&b,&c);printf("%c,%c,%c\n",a,b,c);}#include"stdio.h"main(){chara,b,c;printf("input:\n");

scanf("%c,%c,%c",&a,&b,&c);printf("%c,%c,%c\n",a,b,c);}键盘输入:abc<回车>键盘输入:a,b,c<回车>格式化输入函数scanf()例:以下程序的运行结果是什么?#include"stdio.h"main(){charc1,c2;inta,b;clrscr();scanf("%d%c%d%c",&a,&c1,&b,&c2);printf("c1=%c,c2=%c,a=%d,b=%d\n",c1,c2,a,b);}键盘输入:1x2y<回车>会是什么结果?正确输入:1x2y<回车>5、在格式输入串中,格式说明符的个数应该与输入项的个数相同,若格式符个数少于输入项,scanf函数按格式符的项目结束输入,多余的输入项没有得到新的数据;若格式符的个数多于输入项,scanf函数按输入项的数据结束输入,多余的格式符不起作用;格式化输入函数scanf()main(){inta,b,k,i;clrscr();scanf("%d%d",&a,&b,&k);scanf("%d%d",&i);printf("a=%d,b=%d,k=%d,i=%d\n",a,b,k,i);getch();}6、当输入数据少于输入项时,程序等待输入,直到满足要求为止,当输入的数据多于输入项时,多余数据并不消失,而是留做下一个输入操作的输入数据;格式化输入函数scanf()输入时个数不够,会到下一行取,太多个则放在缓冲区,如

scanf("%d%d",&a,&b,&k);

当输入123则3不送k,仍放在缓冲区。接着执行: scanf("%d%d",&i);

输入4后, 程序运行结果是:a=1,b=2,k=5852,i=3printf与scanf对实数处理时的区别:

实型数据printfscanffloat%f%fdouble%f或%lf%lflongdouble%Lf%Lf格式化输入函数scanf()语句:

scanf("%3d%8f%d",&i,&f,&j);键盘输入数据:123456.7891234回车结果:i为123,f为456.7891,j为234说明:遇到宽度3和8,数据项结束。语句:

scanf("%ld%c%d",&k,&ch,&i);键盘输入数据:123456.7890回车结果:k为123456,ch为'.',i的值为7890说明:遇到非法字符'.',数据项结束。格式化输入函数scanf()注意%c用法:读1个字符(空格,回车键也算)。

charc1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3);

输入abc,c1为'a',则c2为空格,c3为'b'双引号内最好不用其它字符:(逗号可用)

例:scanf("x=%f",&x);要输入:x=123.456

例:scanf("%d",&i) scanf("x=%f",&x);

则输入第一个数后不能按回车 第二句改为scanf("x=%f",&x);才行。

作业练习1编一程序,输入三角形的三条边,求三角形面积。#include<stdio.h>#include<stdlib.h>#include<math.h>intmain(){double

triange_length1,triange_length2,triange_length3,triange_avg,triange_area;printf("输入三角形的三边长:");

scanf("%lf%lf%lf",&triange_length1,&triange_length2,&triange_length3);if(triange_length1+triange_length2<=triange_length3||triange_length1+triange_length3<=triange_length2||triange_length2+triange_length3<=triange_length1){printf("不好意思,您输入的三条边不能构成三角形!!!");}else{triange_avg=(triange_length1+triange_length2+triange_length3)/2;triange_area=sqrt(triange_avg*(triange_avg-triange_length1)*(triange_avg-triange_length2)*(triange_avg-triange_length3));printf("根据您输入三条边的数据构成的三角形面积为:%.2lf\n",triange_area);}return0;}

作业练习2编一程序,从键盘输入一个大写字母,要求输出时,显示小写字母。#include<stdio.h>intmain(){c

温馨提示

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

评论

0/150

提交评论