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标准
示例代码
#includeint 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月08日 06时30分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
oracle跟踪实例的动态注册过程
2019-04-30
巧用SSH的端口转发功能
2019-04-30
UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY
2019-04-30
Struts2高危漏洞修复方案(S2-016/S2-017)
2019-04-30
oracle相关查询指标
2019-04-30
Linux下用SCP无需输入密码传输文件
2019-04-30
Linux下tar命令exclude选项排除指定文件或目录
2019-04-30
su -c
2019-04-30
linux gzip压缩/解压缩*.gz文件
2019-04-30
linux设置服务器禁止或开启ping包
2019-04-30
linux修改SSH默认22端口的方法
2019-04-30
mysql 设置max_allowed_packet 大小
2019-04-30
perl语言hello world程序
2019-04-30
perl中的特殊字符
2019-04-30
perl替换数组元素
2019-04-30
perl中的特殊变量$[
2019-04-30
perl中的函数,传参
2019-04-30
登录验证码使用汉字的方法
2019-04-30
easyui项目主页面架构搭建
2019-04-30