C零基础课程-06-printf进阶
Posted shellmad
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C零基础课程-06-printf进阶相关的知识,希望对你有一定的参考价值。
[TOC]
#格式化控制的完整语法
%[格式标志][宽度][.精度]输出类型
- 输出类型:之前课程中介绍过的d,c,f,X,u等
- 宽度:输出内容所占的最小宽度
- 格式标志:与对齐方式、补位方式、是否输出正负符号、是否输出特殊进制的前缀有关,可以同时设置多个标志
#最小占用宽度 可以通过数字,指定输出内容的所占的最小宽度。
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("%8d"/*数字表示占有的最小宽度*/, 15);
return 0;
}
#精度 小数点后接数字,代表了输出精度,对于不同的输出类型,精度的意义不一样。 对于十进制、十六进制,精度代表输出的最少数字位数。 对于浮点数,精度代表小数部分的位数。
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("%.3d", 15);
return 0;
}
小数控制精度:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("%.8f", 3.1415926);
return 0;
}
#格式标志 ##左对齐 “-”代表左对齐,默认是右对齐
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("%-8d", 15);
return 0;
}
##输出符号 “+”代表会输出符号(无论正负),默认只有负数才输出符号
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("%+d", 15);
return 0;
}
##补位 “0”代表如果输出位数不足,则会补0填充
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("%08X", 15);
return 0;
}
##显示进制前缀 “#”表示对于十六进制、八进制的输出,显示进制前缀。十六进制的前缀是"0X",八进制的前缀是"0"。
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("%#X, %#o", 15, 07);
return 0;
}
#常见的转义字符 ##回车与换行 回车换行的区分,来源于打字机。
严格地说,回车只代表将光标移动到行首,并不会另起一行。 不过这都是历史话题了,我们只要知道历史遗留下来的习惯导致,在不同的操作系统中,使用的换行方式是不同的,具体而言:
- Windows下习惯使用 作为换行
- Linux与Unix下习惯使用 作为换行
- Mac上习惯使用 作为换行 只回车不换行导致字符被覆盖的例子:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("abc
def");
return 0;
}
##制表符
代表制表符。
制表符对应着我们键盘
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("姓名 学号 生日
");
return 0;
}
以上是关于C零基础课程-06-printf进阶的主要内容,如果未能解决你的问题,请参考以下文章
在线观看 老杜2020版Java零基础进阶368集(视频采用JDK13录制)超清完整版下载
每天分享老杜2020版Java零基础进阶368集(视频采用JDK13录制) 完整版分享
IT好课老杜2020版Java零基础进阶368集(视频采用JDK13录制)网盘分享
好课分享老杜2020版Java零基础进阶368集(视频采用JDK13录制)