C语言输出函数printf

printf详解及进阶用法

  • printf输入函数详细用法
    • 基础用法,格式控制
    • 进阶用法
    • 部分用法示例

printf输入函数详细用法

本文仅供个人学习使用,原文http://c.biancheng.net/view/1793.html。

基础用法,格式控制

格式控制符 作用
%c 输出一个单一的字符
%hd、%d、%ld 以十进制、有符号的形式输出 short、int、long 类型的整数
%hu、%u、%lu 以十进制、无符号的形式输出 short、int、long 类型的整数
%ho、%o、%lo 以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数
%#ho、%#o、%#lo 以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数
%hx、%x、%lx、%hX、%X、%lX 以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。
%#hx、%#x、%#lx、%#hX、%#X、%#lX 以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。
%f、%lf 以十进制的形式输出 float、double 类型的小数
%e、%le 、%E、%lE 以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。
%g、%lg、%G、%lG 以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。
%s 输出一个字符串

进阶用法

printf格式控制符完整格式:

%[flag][width][.precision]type

(1)type如上所述;
(2)flag:标志字符,详情见下表:

flag 作用
- -表示左对齐。如果没有,就按照默认的对齐方式,默认一般为右对齐。
+ 用于整数或者小数,表示输出符号(正负号)。如果没有,那么只有负数才会输出符号。
空格 用于整数或者小数,输出值为正时冠以空格,为负时冠以负号。
# 1)对于八进制(%o)和十六进制(%x / %X)整数,# 表示在输出时添加前缀;八进制的前缀是 0,十六进制的前缀是 0x / 0X。对于小数(%f / %e / %g)2)# 表示强迫输出小数点。如果没有小数部分,默认是不输出小数点的,加上 # 以后,即使没有小数部分也会带上小数点。

(3)width表示宽度;
(4) .precision 表示输出精度,也就是小数的位数。
①当小数部分的位数大于 precision 时,会按照四舍五入的原则丢掉多余的数字;
②当小数部分的位数小于 precision 时,会在后面补 0。
此外,亦可用与字符串和整数:
①用于字符串时,.precision 表示最大输出宽度,或者说截取字符串。当字符串的长度大于 precision 时,会截掉多余的字符;当字符串的长度小于 precision 时,.precision 就不再起作用。
②用于整数时,.precision 表示最小输出宽度。与 width 不同的是,整数的宽度不足时会在左边补 0,而不是补空格。

部分用法示例

代码如下:

#include 
int main() {
	int a = 10, b = 20, c = 30;
	printf("%5d,%5d,%5d\n",a,b,c);
	printf("%.5d,%.5d,%.5d\n", a, b, c);
	printf("%-5d,%-5d,%-5d\n\n", a, b, c);

	int d = 10;
	printf("%d,%+d\n",d,d);
	printf("% d\n\n",d);

	double e = 5.6789;
	printf("%.2lf\n",e);
	printf("%.10lf\n", e);
	printf("%.0lf\n", e);
	printf("%#.0lf\n\n", e);

	char f[10] = "abcdefghi";
	printf("%.3s,%.7s\n", f, f);
	return 0;
}

输出结果如下图:
C语言输出函数printf_第1张图片

你可能感兴趣的:(C语言输出函数printf)