格式控制符是用于指定 printf
、scanf
、fprintf
、fscanf
等 C 标准库函数中的格式化输入和输出的特殊字符序列。这些字符序列定义了如何解释要输出或输入的数据。以下是一些常用的格式控制符:
-
%d
: 用于输出或输入十进制整数。 -
%f
: 用于输出或输入浮点数。 -
%c
: 用于输出或输入单个字符。 -
%s
: 用于输出或输入字符串。 -
%x
: 用于输出或输入十六进制整数。 -
%o
: 用于输出或输入八进制整数。 -
%u
: 用于输出或输入无符号十进制整数。 -
%%
: 用于输出一个百分号%
。 -
%e
,%E
: 用于以指数形式输出浮点数。 -
%g
,%G
: 用于自动选择%f
或%e
(或%E
)输出浮点数。 -
%p
: 用于输出指针地址。 -
%n
: 用于将字符数赋给参数。
这些格式控制符可以用于 printf
、scanf
、fprintf
、fscanf
等函数中,用于格式化输出到屏幕或文件,或者从输入中解析数据。例如:
int num = 42;
printf("The number is: %d\n", num);
char str[] = "Hello, world!";
printf("The string is: %s\n", str);
在这个示例中,%d
和 %s
就是格式控制符,分别用于输出整数和字符串。格式控制符可以和其他字符一起使用,用于更复杂的格式化输出或输入。
当使用 C 标准库函数进行格式化输入和输出时,格式控制符允许您指定输出的格式,以及输入时期望接收的格式。以下是一些常用的格式控制符和其详细解释:
-
%d
: 以十进制形式输出整数。对应的参数应为int
类型。 -
%ld
: 以长整型十进制形式输出整数。对应的参数应为long int
类型。 -
%u
: 以无符号十进制形式输出整数。对应的参数应为unsigned int
类型。 -
%lu
: 以无符号长整型十进制形式输出整数。对应的参数应为unsigned long int
类型。 -
%x
,%X
: 以十六进制形式输出整数,小写或大写字母。对应的参数应为unsigned int
类型。 -
%o
: 以八进制形式输出整数。对应的参数应为unsigned int
类型。 -
%c
: 输出一个字符。对应的参数应为char
类型。 -
%s
: 输出一个字符串。对应的参数应为char*
类型,指向要输出的字符串。 -
%f
: 以十进制形式输出浮点数。对应的参数应为double
类型。 -
%e
,%E
: 以指数形式输出浮点数,小写或大写字母。对应的参数应为double
类型。 -
%g
,%G
: 自动选择%f
或%e
(或%E
)输出浮点数。对应的参数应为double
类型。 -
%p
: 输出一个指针地址。对应的参数应为指针类型。 -
%%
: 输出一个百分号%
。 -
%n
: 不输出任何字符,但会将已打印字符的数目赋值给参数。对应的参数应为指向int
类型的指针。
这些格式控制符可以与其他修饰符一起使用,例如:
%5d
: 输出宽度为 5 的十进制整数。%10.2f
: 输出宽度为 10,保留两位小数的浮点数。
这些控制符可以根据需要进行组合,以满足输出的格式要求。例如,%04d
可以用于在输出整数时将不足宽度的位置用零填充。