C语言数据的输入与输出
在程序运行的过程中,往往需要用户输入一些数据,程序运算得到的计算结果需要输出给用户,从而实现人与计算机的交互。因此,在程序设计中,输入输出语句是一种不可缺少的重要语句。在C语言中,没有专门的输入输出语句,所有的输入输出操作都是通过调用标准的I/O库函数来
实现的。最常用的输入输出函数有scanf(),printf(),getchar()和putchar(),下面介绍一下。
3.2.1scanf()函数
格式输入函数scanf()的作用是从键盘输入数据,根据指定的输入格式将输入数据赋给相应的输入项。函数的一般格式为:
scanf("控制字符串",输入列表);
控制字符串指定数据的输入格式,必须用双引号括起来。其内容由格式描述和常用字符组成。输入项列表由一个或多个变量地址组成。当有多个变量地址时,每个变量地址用逗号“,”分隔。
scanf()中的每个变量都要加一个地址运算符,也就是在变量名前面加“&”,这是初学者容易忽略的问题。请注意,输入类型与变量类型一致。
控制字符串有两个组成部分:格式描述和常用字符。
1。格式说明
格式说明指定输入项中变量输入的数据格式类型,格式为:
% []
各格式字符及其含义见表3-1。
3 . 2 . 2 printf()函数
对应于格式化输入函数scanf(),是打印格式函数printf()。它的功能是将输出项列表中列出的输出项以控制字符串指定的格式输出到默认的输出设备(通常是显示器)。其基本格式为:[/br输出项列表]
输出项可以是常量、变量、表达式,其类型和个数必须与控制字符串中格式字符的类型和
个数一致。当有多个输出项时,这些项用逗号分隔。
控制字符串必须用双引号括起来,由格式描述和常用字符组成。
1。格式描述
一般格式为:
%[]
格式字符指定对应输出项的输出格式。常见格式字符见表3-2。
可以看出,当指定的字段宽度小于数据的实际宽度时,对于整数,则按照数字的实际字段宽度输出,对于浮点数,则四舍五入对应的小数位数。比如:12.34567由%5.2f输出,输出12.35。如果字段宽度小于或等于浮点数整数部分的宽度,则浮点数将根据实际位数输出,但小数位数仍将遵循宽度修饰符给出的值。如果用%2.1f输出上面的12.34567,结果是:12.3。
在实际应用中,有一种更灵活的字段宽度控制方法,使用常量或变量的值作为输出字段宽度。方法是用一个“*”作为修饰符,插在%之后。
例如:i = 123
printf("%*d ",5,I);
long intb;
short intc;
unsigned intd;
chare;
float f;
doubleg;
a = 1023;
b = 2222;
c = 123;
d = 1234;
e = ' x ';
f = 3.1415926535898;
g = 3.1415926535898;
printf("a=%d\n ",a);
printf("a=%0\n ",a);
printf("a=%x\n ",a);
printf("b=%ld\n ",b);
printf("c=%d\n ",c);
printf("d=%u\n ",d);
printf("e=%c\n ",e);
printf("f=%f\n ",f);
printf("g=%f\n ",g);
printf(" \ n ");
}
执行程序,输出为:
RUN & iquest;
A = 1023
A = 1777
A = 3FF
B = 2222
C = 123
D = 1234
E = x
getchar()的作用是返回一个键盘输入的字符。它不带参数,通常的格式如下:
ch=getchar()
ch是一个字符变量。上述语句从键盘接收一个字符输入,并将其分配给ch。
putchar()的作用是将一个字符输出到屏幕上。其功能相当于printf函数中的%c。Putchar()必须
有一个输出项。输出项可以是字符常量、变量或表达式,但只能是单个字符,不能是字符串。
[例3-3]输入一个字符,回显该字符并输出其ASCII码值。
# include
main()
{
charch;
ch = getchar();
putchar(ch);
printf("%d\n ",ch);
}
运行程序:
运行& iquest
g & I quest;
g103
需要注意的是,字符输入输出函数是在头文件stdio.h中定义的,所以在程序中使用putchar()或
getchar()函数时,必须在main ()
之前使用语句:
# include " stdio . h " 3 . 2 . 4程序应用示例
[示例3-4]下面的程序是一个复杂加法的示例。
# include
main()
{
float 1,b1,a2,B2;
charch;
printf(" \ t \ t \ tcomplexsAddition \ n ");
printf(" pleaseinputthefirstflex:\ n ");
printf(" \ t realpart:");
scanf("%f ",& a1);
printf(" \ tvirtualpart:");
scanf("%f ",& B1);
printf("%5.2f+i%5.2f\n ",a1,B1);
printf(" \ nplayinputthesecondcomplex:\ n ");
printf(" \ t realpart:");
scanf("%f ",& a2);
printf(" \ tvirtualpart:");
scanf("%f ",& B2);
printf("%5.2f+i%5.2f\n ",a2,B2);
printf(" \ ntheadditions:");
printf("%6.3f+i%6.3f\n ",a1+a2,B1+B2);
printf("程序正常终止,按enter ... ");
ch = getchar();
ch = getchar();
}
运行结果如下:
RUN & iquest;
complex addition
pleaseinputthefirstflex:
real part:1.2
virtual part:3.4
1.20+I 3.40
pleaseinputthesecondcomplex:
real part:5.6
virtual part:7.8
5.60+I 7.80
addition is:6.800+I....
0条评论