码迷,mamicode.com
首页 > 其他好文 > 详细

C零基础课程-06-printf进阶

时间:2019-10-10 11:22:11      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:特殊   光标移动   内容   例子   char*   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下习惯使用\r\n作为换行
  • Linux与Unix下习惯使用\n作为换行
  • Mac上习惯使用\r作为换行 只回车不换行导致字符被覆盖的例子:
#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("abc\rdef");
 return 0;
}

##制表符 \t代表制表符。 制表符对应着我们键盘键的效果(大小写锁定键上面),在输出时可用于对齐。

#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("姓名\t学号\t生日\r\n");
 return 0;
}

C零基础课程-06-printf进阶

标签:特殊   光标移动   内容   例子   char*   printf   常见   进制   锁定   

原文地址:https://www.cnblogs.com/shellmad/p/11646147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!