6 printf("c=%c,%5c,%d\n",c,c,c);
7 printf("i=%d,%c",i,i);
8 }
程序运行结果如下:
c=A,□□□□A,65
i=65,A
请同学们注意:%后面的c是格式符,逗号后面的c是变量,不要搞混淆了,同时还请注意一个字符变量和一个整型变量可以用%c或%d两种格式输出。
需要强调的是:在C语言中,整数可以用字符形式输出,字符数据也可以用整数形式输出。将整数用字符形式输出时,系统首先求该数与256的余数,然后将余数作为ASCII码,转换成相应的字符输出。
6.类型转换字符s──输出一个字符串
例3.4 类型转换字符s的使用。
1 #include <stdio.h>
2 void main()
3 {
4 printf("%s\n%5s\n%-10s\n","Internet",
"Internet","Internet");
5 printf("%10.5s\n%-10.5s\n%3.5s\n","Internet",
"Internet","Internet");
6 }
程序运行结果如下:
Internet
Internet
Internet□□
□□□□□Inter
Inter□□□□□
Inter
注意:系统输出字符和字符串时,不输出单引号和双引号。
s格式符的几种用法:
(1)%s,原样输出字符串。
(2)%ms,输出字符串占m列,如果字符串本身的长度大于m值,则突破m的限制,将字符串原样输出;如果字符串本身的长度小于m值,不足部分左边补空格。
(3)%-ms,字符串输出左对齐,如果字符串小于m,不足部分右边补空格。
(4)%m.ns,输出占m列,但只取字符串从左到右n个字符,右对齐,不足部分左边补空格。
(5)%-m.ns,输出占m列,但只取字符串从左到右的n个字符,左对齐,不足部分右补空格;如果n>m,则m自动取n值。
7.类型转换字符f──以小数形式输出单精度和双精度实数
例3.5 类型转换字符f的使用。
1 #include <stdio.h>
2 void main( )
3 {
4 float f=123.456;
5 double d1,d2;
6 d1=1111111111111.111111111;
7 d2=2222222222222.222222222;
8 printf("%f\n%12f\n%12.2f\n%-12.2f\n%.2f\n",f,f,f,f,f);
9 printf("d1+d2=%f\n",d1+d2);
10 }
程序运行结果如下:
123.456001
□□123.456001
□□□□□□123.46
123.46□□□□□□
123.46
d1+d2=3333333333333.333010
f格式符的几种用法
(1)%f,不指定字符宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数,但不要认为全部数字都是有效数字。
本例程序的输出结果中,数据123.456001和3333333333333.333010中的001和010都是无意义的,因为它们超出了有效数字的范围(单精度的有效范围为7位数字,双精度的有效数字一般为16位)。
(2)%m.nf,指定输出数据占m列,其中有n位小数,右对齐,如果位数不足左边补空格。
(3)%-m.nf,格式基本同%m.nf,只是左对齐,不足位数右边补空格。
8.类型转换字符e──以指数形式输出单精度和双精度实数
(1)对于实数,也可使用格式符%e,以规范化地指数形式输出:整数部分占一位,小数点占一位,尾数中的小数部分占5位;指数部分占4位(如e-03),其中e占一位,指数符号占一位,指数占2位,共计11位。
例如:
double x=123.456;
printf(“%e”,x);
TC 2.0的输出结果为:1.23456e+02(不同系统输出结果略有差异,如VC输出结果为1.234560e+002)
(2)%m.n和-%m.n与前面的含义相同
9.类型转换字符g
也可使用格式符%g,让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。
例如:
float f=123.456;
printf(“%f\n%e\n%g\n”,f,f,f);
输出结果为:
123.456001
1.23456e+02
123.456
3.2.2 scanf函数(格式化输入函数)
scanf函数是用来从外部输入设备向计算机主机(内存变量)输入数据的。
例3.6 从键盘上输入圆柱体的底半径radius,高high的值,求其体积。
1 #include <stdio.h>
2 #define PI 3.1415926 //定义字符常量
3 void main()
4 {
5 float radius,high,vol;
6 printf("Please input radius and high: ");
7 scanf("%f%f",&radius,&high);/*从键盘输入两个实数赋
给变量radius,high*/
8 vol=PI*radius*radius*high;
9 printf("radius=%7.2f\nhigh=%7.2f\nvol=%7.2f\n",
radius,high,vol);
10 }
程序运行结果如下:
Please input radius and high: 1.5□2.0↙
radius=□□□1.50
high=□□□2.00
vol=□□13.14
程序中给计算机提供数据,在C语言中,可以用赋值语句,也可以用scanf函数,通过键盘输入,给计算机提供数据,使程序变得更为灵活。
一. scanf函数的一般格式
1. 一般格式
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] 下一页
|