格式说明符是用于格式化输入和输出函数的字符串。格式字符串确定输入和输出的格式。格式字符串始终以“%”字符开头。
printf() 函数中常用的格式说明符有:
格式说明符 | 描述 |
---|---|
%d 或 %i | 它用于打印有符号整数值,其中有符号整数表示变量可以包含正值和负值。 |
%u | 它用于打印无符号整数值,其中无符号整数表示变量只能包含正值。 |
%o | 它用于打印八进制无符号整数,其中八进制整数值始终以 0 值开头。 |
%x | 它用于打印十六进制无符号整数,其中十六进制整数值始终以 0x 值开头。在此,字母字符以小写字母打印,例如 a、b、c 等。 |
%X | 它用于打印十六进制无符号整数,但 %X 打印大写字母字符,如 A、B、C 等。 |
%f | 它用于打印十进制浮点值。默认情况下,它会在“.”之后打印 6 个值。 |
%e/%E | 它用于科学记数法。它也被称为尾数或指数。 |
%g | 用于打印十进制浮点数,使用固定精度,即输入的小数点后的值与输出的值完全相同。 |
%p | 它用于以十六进制形式打印地址。 |
%c | 它用于打印无符号字符。 |
%s | 它用于打印字符串。 |
%ld | 它用于打印长符号整数值。 |
让我们通过一个例子来详细了解格式说明符。
int main() { int b=6; int c=8; printf("b 的值为:%d", b); printf("\n c 的值为:%d",c); return 0; }
在上面的代码中,我们使用 %d 说明符打印 b 和 c 的整数值。
输出
int main() { int b=10; int c= -10; printf("b 的值为:%u", b); printf("\nc 的值为:%u",c); return 0; }
在上面的程序中,我们使用无符号格式说明符(即 %u)显示 b 和 c 的值。b 的值为正,因此 %u 说明符打印 b 的确切值,但它不打印 c 的值,因为 c 包含负值。
输出
int main() { int a=0100; printf("a 的八进制值为: %o", a); printf("\na 的整数值为:%d",a); return 0; }
在上面的代码中,我们显示了 a 的八进制值和整数值。
输出
int main() { int y=0xA; printf("y 的十六进制值为:%x", y); printf("\ny 的十六进制值为:%X",y); printf("\ny 的整数值为: %d",y); return 0; }
在上面的代码中,y 包含十六进制值“A”。我们以两种格式显示 y 的十六进制值。我们使用 %x 和 %X 来打印十六进制值,其中 %x 以小写字母显示值,即“a”,%X 以大写字母显示值,即“A”。
输出
int main() { float y=3.4; printf("y 的浮点数是: %f", y); return 0; }
上面的代码打印了 y 的浮点值。
输出
int main() { float y=3; printf("y 的指数值为: %e", y); return 0; }
输出
int main() { float y=3; printf("y 的指数值为: %E", y); return 0; }
输出
int main() { float y=3.8; printf("y 的浮点数是: %g", y); return 0; }
在上面的代码中,我们使用 %g 说明符显示 y 的浮点值。%g 说明符以相同的精度显示与输入相同的输出。
输出
int main() { int y=5; printf("y 的十六进制地址值为:%p", &y); return 0; }
输出
int main() { char a='c'; printf("a 的值为: %c", a); return 0; }
输出
int main() { printf("%s", "RocSchool"); return 0; }
输出
假设我们想要显示一个在屏幕上占用最少空间的输出。您可以通过在格式说明符的百分号后显示一个整数来实现这一点。
int main() { int x=900; printf("%8d", x); printf("\n%-8d",x); return 0; }
在上面的程序中,%8d 说明符显示 8 个空格后的值,而 %-8d 说明符将使值左对齐。
输出
现在我们将看到如何填充空白区域。它显示在下面的代码中:
int main() { int x=12; printf("%08d", x); return 0; }
在上面的程序中,%08d 表示空白处用零填充。
输出
我们可以使用“.”来指定精度。(点)运算符后跟整数和格式说明符。
int main() { float x=12.2; printf("%.2f", x); return 0; }
输出