达内培训:C语言数据的输入与输出

2025-05-09 15:43:44

在程序的运行过程中,往往需要由用户输入一些数据,而程序运算所得到的计算结果等又需要输出给用户,由此实现人与计算机之间的交互,所以在程序设计中,输入输出语句是一类必不可少的重要语句,在C语言中,没有专门的输入输出语句,所有的输入输出操作都是通过对标准I/O库函数的调用实现。最常用的输入输出函数有scanf()、printf()、getchar()和putchar(),以下分别介绍。

3.2.1scanf()函数

格式化输入函数scanf()的功能是从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项。函数一般格式为:scanf("控制字符串",输入项列表);

其中控制字符串规定数据的输入格式,必须用双引号括起,其内容是由格式说明和普通字符两部分组成。输入项列表则由一个或多个变量地址组成,当变量地址有多个时,各变量地址之间用逗号“,”分隔。

scanf()中各变量要加地址操作符,就是变量名前加“&”,这是初学者容易忽略的一个问题。应注意输入类型与变量类型一致。

下面探讨控制字符串的两个组成部分:格式说明和普通字符。

1.格式说明格式说明规定了输入项中的变量以何种类型的数据格式被输入,形式是:% [ <修饰符> ]<格式字>各个格式字符及其意义见表3 - 1。

3.2.2printf()函数与格式化输入函数scanf()相对应的是格式化输出函数printf(),其功能为按控制字符串规定的格式,向缺省输出设备(一般为显示器)输出在输出项列表中列出的各输出项,其基本格式为:printf(“控制字符串”,输出项列表)输出项可以是常量、变量、表达式,其类型与个数必须与控制字符串中格式字符的类型、个数一致、当有多个输出项时,各项之间用逗号分隔。控制字符串必须用双引号括起,由格式说明和普通字符两部分组成。1.格式说明一般格式为:%[<修饰符>]<格式字符>格式字符规定了对应输出项的输出格式,常用格式字符见表3-2。可以看出,当指定场宽小于数据的实际宽度时,对整数,按该数的实际场宽输出,对浮点数,相应小数位的数四舍五入。例如:12.34567按%5.2f输出,输出12.35。若场宽小于等于浮点数整数部分的宽度,则该浮点数按实际位数输出,但小数位数仍遵守宽度修饰符给出的值。如上面的12.34567按%2.1f输出,结果为:12.3。在实际应用中,还有一种更灵活的场宽控制方法,用常量或变量的值作为输出场宽,方法是以一个"*"作为修饰符,插入到%之后。例如:i=123;printf("%*d",5,i);longintb;shortintc;unsignedintd;chare;floatf;doubleg;a=1023;b=2222;c=123;d=1234;e='x';f=3.1415926535898;g=3.1415926535898;printf("a=%d",a);printf("a=%0",a);printf("a=%x",a);printf("b=%ld",b);printf("c=%d",c);printf("d=%u",d);printf("e=%c",e);printf("f=%f",f);printf("g=%f",g);printf("");}执行程序,输出为:RUN?a=1023a=1777a=3ffb=2222c=123d=1234e=xf=3.141593g=3.1415933.2.3getchar()函数与putchar()函数putchar()与getchar()是对单个字符进行输入输出的函数。getchar()的功能是返回键盘输入的一个字符,它不带任何参数,其通常格式如下:ch=getchar()ch为字符型变量,上述语句接收从键盘输入的一个字符并将它赋给ch。putchar()的作用是向屏幕上输出一个字符,它的功能与printf函数中的%c相当。putchar()必须带输出项,输出项可以是字符型常量、变量、表达式,但只能是单个字符而不能是字符串。[例3-3]输入一个字符,回显该字符并输出其ASCII码值。#include<stdio.h>main(){charch;ch=getchar();putchar(ch);printf("%d",ch);}运行程序:RUN?g?g103需要注意的是,字符输入输出函数定义在头文件stdio.h中,故当程序中使用putchar()或getchar()函数时,必须在main()之前用语句:#include"stdio.h"将stdio.h包含进来。3.2.4程序应用举例[例3-4]下面的程序是一个复数加法的例子。#include<stdio.h>main(){floata1,b1,a2,b2;charch;printf(" complexsAddition");printf("pleaseinputthefirstcomplex:");printf(" realpart:");scanf("%f",&a1);printf(" virtualpart:");scanf("%f",&b1);printf("%5.2f+i%5.2f",a1,b1);printf("pleaseinputthesecondcomplex:");printf(" realpart:");scanf("%f",&a2);printf(" virtualpart:");scanf("%f",&b2);printf("%5.2f+i%5.2f",a2,b2);printf("Theadditionis:");printf("%6.3f+i%6.3f",a1+a2,b1+b2);printf("programnormalterminated,pressenter...");ch=getchar();ch=getchar();}运行结果如下:RUN?complexsadditionpleaseinputthefirstcomplex:realpart:1.2virtualpart:3.41.20+i3.40pleaseinputthesecondcomplex:realpart:5.6virtualpart:7.85.60+i7.80Theadditionis:6.800+i11.200programnormalterminated,pressenter....

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢