输出函数——printf注意事项

本文详细介绍了C语言中的格式化输出,包括%d、%o、%x、%u等整数格式,%c字符格式,%s字符串格式,%f、%e、%g浮点数格式,以及域宽、精度控制和对齐方式等内容,帮助理解printf函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

域宽:

可以在格式声明中指定输出数据的域宽(所占的列数),如用 “%5d”,指定输出数据所占 5 列,输出的数据显示在此 5 列区域的左侧。如:

printf("%5d\n%5d\n",12,-345);
输出结果为:
12 ( 12 前面有 3 个空格)
-345 (-345前面有1个空格)
其他任何输出格式均可以指定域宽,如%c、%f、%s。

输出字符时:

一个整数,如果在 0-127 范围中,也可以用 “%c” 使之按字符形式输出,在输出前,系统会将该整数作为 ASCLL 码转换成相应的字符;

short a = 121;
printf("%c",a);
输出字符y,如果整数比较大,则把它最后一个字节的信息一字符形式输出。如: int a = 377; y 存储形式:00000000 00000000 00000000 01111001
printf("%c",a);
可见最后一个字节为 01111001,即十进制的 121,它是 ‘y’ 的ASCLL代码。

f 格式符

1)基本型 %f(没得讲,不讲了)
2)指定数据宽度和小数位数,用%m.nf
m指的是输出的数据占 m 列(包括小数、小数点),n 指的是小数占 n 列。
例如:printf("%20.15f\n",a/3);     输出的结果占 20 列(包括小数、小数点),小数占 15 列。
3)输出的数据向左对齐,用%-m.nf
在 m.n 的前面加一个负号,其作用与 %m.nf 形式作用基本相同,但当数据长度不超过m 时,数据向左靠,右端补空格。如:
printf("%-25.15f,%25.15f\n",a,a);
第一次输出 a 时输出结果向左端靠,右端空 5 列。第二次输出 a 时输出结果向右端靠,左端空 5 列。

g格式符:

	用来输出浮点数,系统自动选 f 格式或 e 格式输出,选择其中长度较短的格式,不输出无意义的 0。如:
	double a = 12345678954321;
	printf("%f\t%e\t%g\n",a,a,a);
	输出之后可以看到 %f 格式输出占 21 列,用 %e 格式输出占 13 列,故 %g 采用 %e 格式输出。

还有 e 格式符、i 格式符、o 格式符、x 格式符、u 格式符,翻书去!

printf函数中用到的格式字符和格式附加字符

格式字符说明
d,i以带符号的十进制形式输出整数(正数不输出符号)
o以八进制无符号形式输出整数(不输出前导符 0 )
x,X以十六进制无符号形式输出整数(不输出前导符 0x),用 x 则输出十六进制数的 a~f 时以小写形式输出,用 X 时,则以大写字母输出
u以无符号十进制形式输出整数
c以字符形式输出,只输出一个字符
s输出字符串
f以小数形式输出单、双精度数,隐含输出 6 位小数
e,E以指数形式输出实数,用 e 时指数以 ”e“ 表示(如 1.2e+02),用 E 时指数以 ”E“ 表示(如 1.2E+02)
g,G选用 %f 或 %e 格式中输出宽度较短的一种格式,不输出无意义的 0。用 G 时,若以指数形式输出,则指数以大写表示
l长整型整数,可加在格式符 d、o、x、u 前面
m(代表一个正整数)数据最小宽度
n (代表一个正整数)对实数,表示输出 n 位小数;对字符串,表示截取的字符个数
输出的数字或字符在域内向左靠
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值