【C语言】printf的输出格式控制符、格式修饰符、转义字符

格式控制符:

  • %d:用于输出十进制有符号整数。
  • %u:用于输出十进制无符号整数。
  • %f:用于输出十进制浮点数字。
  • %e 或 %E:用于输出指数形式的浮点数。
  • %g 或 %G:用于输出浮点数,根据数值大小自动选择使用 %f 或 %e
  • %x 或 %X:用于输出十六进制。
  • %c:用于输出单个字符。
  • %s:用于输出字符串。
  • %p:用于输出指针地址。
  • %lu:用于输出无符号长整型。
  • %lld 或 %I64d:用于输出有符号长长整型。
  • %llu 或 %I64u:用于输出无符号长长整型。
  • %Lf:用于输出长双精度浮点数。
  • %% 格式控制符:用来输出百分号 %,在输出时需要使用两个百分号连在一起。

格式修饰符:

  • -:左对齐。
  • +:输出符号(正数前面加上“+”)。
  • #:八进制前缀(0)、十六进制前缀(0x 或 0X)或浮点数小数点(.)。
  • 0:用 0 在左侧填充数据输出的空白,而不是默认的空格字符。
  • m.nm 是指定的最小宽度,n 是指定的精度。
  • *:用来接收动态传入的宽度和精度。例如,%*.*f 表示输出浮点数,宽度和精度由后面带两个 int 类型的参数动态传入。

转义字符:

  • a:警报(响铃)。
  • b:退格(回退)一格。
  • f:换页。
  • n:换行。
  • r:回车。
  • t:水平制表符。
  • v:垂直制表符。
  • \:反斜杠。
  • ':单引号。
  • ":双引号。
  • ?:问号。
  • :字符串结束标志。

代码演示:

#include<stdio.h>

int main() {
	// 整型
	int a = 123;
	printf(" % dn", a); // 输出 123

	// 无符号整型
	unsigned int b = 456;
	printf("%un", b); // 输出 456

	// 浮点数
	double c = 1.23;
	printf("%fn", c); // 输出 1.230000

	// 指数形式浮点数
	double d = 12345.678;
	printf("%en", d); // 输出 1.234568e+04

	// 十六进制
	int e = 0x123;
	printf("%xn", e); // 输出 123

	// 字符
	char f = 'a';
	printf("%cn", f); // 输出 a

	// 字符串
	char g[] = "hello world";
	printf("%sn", g); // 输出 hello world

	// 指针地址
	int* h = &a;
	printf("%pn", h); // 输出 a 的地址

	// 无符号长整型
	unsigned long i = 1234567890ul;
	printf("%lun", i); // 输出 1234567890

	// 有符号长长整型
	long long j = -123450000000ll;
	printf("%lldn", j); // 输出 -123450000000

	// 无符号长长整型
	unsigned long long k = 123450000000ull;
	printf("%llun", k); // 输出 123450000000

	// 长双精度浮点数
	long double l = 1.23;
	printf("%Lfn", l); // 输出 1.230000

	// 百分号转义
	printf("%%n"); // 输出 %

	// 格式修饰符
	int num = 123;
	double fnum = 3.14159;
	printf("%-5dn", num); // 输出 123   (左对齐)
	printf("%+dn", num); // 输出 +123(输出符号)
	printf("%#xn", num); // 输出 0x7b(十六进制前缀)
	printf("%05dn", num); // 输出 00123(用 0 左对齐填充)
	printf("%.2fn", fnum); // 输出 3.14 (精度控制)
	printf("%*.*fn", 8, 2, fnum); // 输出    3.14 (动态宽度和精度,从后面两个 int 参数中传入)

	// 转义字符
	printf("hellotworldn"); // 输出 hello    world

	return 0;
}

        对于修饰符和格式控制符的使用,可以参考具体的 C 语言教程或参考手册,根据实际需要选择使用。同时,可以使用 printf 函数的返回值来判断是否输出成功。