C语言自学完备手册(07)——printf()输出格式详解
发布日期:2021-06-30 11:19:32 浏览次数:2 分类:技术文章

本文共 2243 字,大约阅读时间需要 7 分钟。




版权声明

  • 本文原创作者:
  • 作者博客地址:

printf()格式常见形式如下:

%[标志][宽度][.精度][长度]类型

各部分详解如下:

类型

类型 输出 例子
d或i 带符号十进制整形 392
u 无符号十进制整形 7235
o 无符号八进制数 610
x 无符号十六进制整形 7fa
X 无符号十六进制整形(大写) 7FA
f 十进制浮点数,小写 392.65
F 十进制浮点数,大写 392.65
e 科学计数法(尾数/指数),小写 3.9265e+2
E 科学计数法(尾数/指数),大写 3.9265E+2
g 使用最短的表示: %e 或 %f 392.65
G 使用最短的表示: %E 或 %F 392.65
a 十六进制浮点数,小写 -0xc.90fep-2
A 十六进制浮点数,大写 -0XC.90FEP-2
c 字符 a
s 字符串 sample
p 指针地址 b8000000
n 不打印。相应的参数必须是指向带符号整形的指针,到目前为止写入的字符数将被存储在指向的位置。
% 跟在一个%字符后面的另一个%将会写入一个% %

标志

标志 描述
- 在给定字段宽度内左对齐; 右对齐是默认的(见宽度子说明符)。
+ 使结果带上正负符号(+或-)即使结果是正数;默认只有负数才会有正负符号。
(space) 如果没有写入正负符号,则插入一个空格。
# 与o,x或X说明符一起使用,会在0以外的数字前加上0,0x或0X的前缀;与a,A,e,E,f,F,g或G一起使用,即使没有小数,也会强制书写输出包含一个小数点。,默认情况下,如果没有小数,则不会写入小数点。
0 在填充时,用零(0)替代空格(见宽度子说明符)。

宽度

宽度 描述
(数字) 要打印的最小字符数。如果要打印的值长度小于此数字,结果将填充空格;若值长度大于此数字,该值也不会被截断。
* 宽度在format字符串中未指定,但需要在附加参数中指定。

精度

精度 描述
.数字 对于整数类型(d,i,o,u,x,X):精度指定要写入的最小位数:如果要写入的值比此数字短,结果将以前导零填充;即使结果较长,该值也不会被截断;精度为0表示对于值0,没有字符被写入。对于a,A,e,E,f和F类型:这是小数点后要打印的位数(默认为6)。对于g和G类型:这是要打印的有效数字的最大数量。对于s类型:这是要打印的最大字符数; 默认情况下将打印所有字符,直到遇到结尾的空字符为止。如果指定精度时没有一个明确的精度值,则假定为0。
.* 在format字符串中未指定精度,但需要在附加参数中指定。

长度

长度 d i u o x X f F e E g G a A c s p n
(none) int unsigned int double int char* void* int*
hh signed char unsigned char signed char*
h short int unsigned short int short int*
l long int unsigned long int wint_t wchar_t* long int*
ll long long int unsigned long long int long long int*
j intmax_t uintmax_t intmax_t*
z size_t size_t size_t*
t ptrdiff_t ptrdiff_t ptrdiff_t*
L long double

注意事项:

  • 对于c类型:它使用了一个int(或wint_t)作为参数,但是在将其格式化为输出之前,将其转换成为了char值(或wchar_t)

  • 加粗并斜体的符号属于C99标准


示例代码

#include 
int main(){ printf ("Characters: %c %c \n", 'a', 65); printf ("Decimals: %d %ld\n", 1977, 650000L); printf ("Preceding with blanks: %10d \n", 1977); printf ("Preceding with zeros: %010d \n", 1977); printf ("Some different radices: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100); printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416); printf ("Width trick: %*d \n", 5, 10); printf ("%s \n", "A string"); return 0;}

运行结果

Characters: a A Decimals: 1977 650000 Preceding with blanks: 1977 Preceding with zeros: 0000001977 Some different radices: 100 64 144 0x64 0144 floats: 3.14 +3e+000 3.141600E+000 Width trick: 10 A string

参考资料

本文重要参考资料:

转载地址:https://it9527.blog.csdn.net/article/details/79825248 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C语言自学完备手册(08)——常用运算符
下一篇:C语言自学完备手册(06)——基本数据类型(2)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月08日 06时30分47秒