前言:
由于对C语言的理解不够深刻,且距离上次学习C语言的时间过于“久远”,所以本人准备重新开始学习C语言。
那么刚好借这个机会,既向大家分享我的学习笔记,同时又能监督我自己去努力学习这门语言,为将来从事嵌入式行业打下基础!!
学习C语言是很漫长的,要重新整理一遍学习的内容更是反复且枯燥的。但不积跬步,无以至千里,没有什么事情是一蹴而就的,我们要学会沉下心来,一起努力,一起期待未来!!
今天的笔记主要是围绕认识与运用格式化输出函数:认识格式化输出函数printf的结构,认识格式化占位符、格式化占位符标志与转义字符,函数printf的转换规范,函数printf的运用。
目录
格式化输出函数printf
格式化输出函数printf的格式
printf函数的一般格式为:printf(“格式化字符串”,需要输出的变量)
函数原型:
#include <stdio.h> printf ( const char * format, ... );
format 参数:
format 参数是一个格式化字符串,由格式化占位符和普通字符组成。
格式化占位符(以 % 开头)用于指明输出的参数值如何格式化。... 附加参数:
... 附加参数的个数由格式化字符决定。
每个参数的值应当与前面格式化字符串中的占位符类型和位置一一对应。格式化占位符与转义字符
#include <stdio.h> int a = 1; char b = 'a'; float c = 6.18; void main() { printf("整数类型 a的值为%d\n",a); printf("单字符类型 b为%c\n",b); printf("浮点数类型 c的值为%4.2f\n",c); }
在代码printf("整数类型 a的值为%d\n",a)中,%d为一个格式化占位符,\n为一个转义字符;
在代码printf("浮点数类型 c的值为%.2f\n",c);中,%1.2f中的1.2为精度,1代表该常量的最小字段宽度(包括小数点),0.2代表精度。
常用格式化占位符表
这里,我将常用的格式化占位符整理成表,我们能看到除了例子中的%d,还有%c,%s各种类型,较为常用的已用灰色标出。
格式占位符标志
常用转义字符表
这里,我将常用的转义字符整理成表,我们能看到除了例子中的\n,还有\b,\f各种类型,较为常用的已用灰色标出。
函数printf的转换规范
转换规范都以%百分号开始,从左到右依次是:
#-0:格式占位符标志,其参数含义可往上翻查询
6:最小字段宽度 .2:该数据的精度
h:长度指示符 d:转换操作
具体含义与区别可看下列代码
#include <stdio.h> float a = 3.1415926; void main() { printf("a取6位最小宽度、精度为4的值为%6.4f\n", a); printf("a取6位最小宽度、精度为2的值为%6.2f\n", a); printf("a取4位最小宽度、精度为2的值为%4.2f\n", a); printf("a取6位最小宽度、精度为2、不足补0的值为%06.2f\n", a); printf("a取6位最小宽度、精度为2、取正负值的值为%+6.2f\n", a); printf("a取6位最小宽度、精度为2、左对齐的值为%-6.2f\n", a); }
函数printf的运用
当我们了解了格式化输出函数printf的基本格式,以及其函数的基本参数,就可以运用该函数完成以下功能:
打印带双引号的字符串
#include <stdio.h> void main() { printf("No Patience No \"JICHI%\"\n"); }
打印飞机
#include <stdio.h> void main() { printf("\n" " === \n" " ====- ~~~~~~~ \n" " =====- = \n" " ======- === \n" " =======- ===== \n" " -==================================== ~~~~~~~~~~~~ \n" " -=[]========()=()=()=()=()=()=()=()== \n" "===================================== \n" " =======- \n" " ======- ~~~~~~~~ \n" " =====- ~~~~~~~~~~~~ \n" " ====- \n" " === \n" ); }