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录制)

好课资源共享:老杜2020版Java零基础进阶368集(视频采用JDK13录制)

零基础学习软件测试从懵逼到吊炸天之基础与进阶篇