在C语言中,格式化输出通常使用printf函数,它允许你指定一个格式化的字符串和一系列参数,然后按照指定的格式输出到标准输出(通常是终端或控制台)。
printf函数的格式字符串可以包含普通字符和格式说明符。格式说明符以%开头,后面跟着一个或多个字符,用于指定如何输出后续的参数。
以下是一些常见的格式说明符:
%d 或 %i:输出十进制整数。
%u:输出无符号十进制整数。
%f:输出浮点数(包括单精度和双精度)。
%e 或 %E:输出浮点数,使用科学记数法表示。
%g 或 %G:根据浮点数的大小自动选择%f或%e格式,但不输出无意义的零。
%c:输出一个字符。
%s:输出一个字符串。
%p:输出一个指针的值,通常显示为十六进制格式。
此外,还有一些修饰符可以与格式说明符一起使用,以控制输出的格式:
数字(如%5d):指定字段的最小宽度。如果输出的数据宽度小于这个值,则使用空格进行填充(除非使用了其他填充字符)。
.后跟数字(如%.2f):对于浮点数,指定小数点后保留的位数。
-:左对齐输出(默认情况下是右对齐)。
0:对于数字格式,使用零进行填充,而不是空格。以下是一些示例:
#include <stdio.h>
int main() {
int x = 123;
float y = 3.14159;
char c = 'A';
char *str = "Hello, World!";
printf("Integer: %d\n", x); // 输出 "Integer: 123"
printf("Float: %.2f\n", y); // 输出 "Float: 3.14"
printf("Character: %c\n", c); // 输出 "Character: A"
printf("String: %s\n", str); // 输出 "String: Hello, World!"
printf("Pointer: %p\n", (void*)str); // 输出指针的值,可能是类似 "0x7fff..." 的十六进制数
printf("Left aligned: %-5d\n", x); // 输出 "Left aligned: 123 "
printf("Zero padded: %05d\n", x); // 输出 "Zero padded: 00123"
return 0;
}
注意,当使用%p来输出指针时,通常需要将指针转换为(void*)类型,以避免类型不匹配的警告或错误。在上面的示例中,我使用了(void*)str来确保兼容性。