1. printf 的用法
1.1 printf函数的定义如下所示:int printf(char *format, arg1, arg2, ...);
该函数是一个可变参数函数,在输出格式 format 的控制下,将其参数进行转换与格式化,并在标准输出设备上打印出来。它的返回值为打印的字符数。
格式化字符串(format)包含两部分内容:普通字符和转换说明。普通字符原样输出,转换字符以百分号(%)开始,后面是若干个转换字符,例如:
int a = 100;
printf("|%5d|",a);
该程序输出如下所示:| 100|,为了方便查看输出结果,我们在两边添加了竖线,我们看到输出字符占5个字符宽度,当前a是3个字符宽度,还有两个左边使用空格补齐。
转换说明的通用格式是:
%m.pX或者是%-m.pX,m指定了最小字段宽度,p代表精度,X代表进行那种转换,例如,数值转换的 d、e、f、g等。负号代表左对齐。
在字符%和转换字符中间可能依次包含下列组成部分:
1. 负号, 输出结果右对齐。
2. 数值, 用于指定最小字段宽度。
3. 小数点, 用于将字段宽度和精确度分开。
4. 数值, 用于指定精确度。
例如:
float f = 123.456;
printf("|%-10.4f|",f);
该程序的输出结果为:|123.4560 |
下表是转换字符说明:
下列代码演示了转换字符的用法:
#include <stdio.h>
int main(void) {
// 1. 十进制整型
int a = 100;
printf("a=%d\n", a);
// 2. 八进制整型
int b = 200;
printf("b=%o\n", b);
// 3. 十六进制整型
int c = 300;
printf("c=%x\n", c);
// 4. 无符号十进制
unsigned int e = 100;
printf("e=%u\n", e);
int e1 = -100;
printf("e1=%d\n", e1);
// 5. 单个字符
char c1 = 'A';
printf("c1=%c\n", c1);
// 6. 字符串
char *ch = "abcd";
printf("ch=%s\n", ch);
// 7. double 类型
double d1 = 123.456;
printf("d1=%f\n", d1);
// 8. double 类型,科学计数法
printf("d1=|%10.3e|\n", d1);
// 9. double 类型,科学计数法 g
double d2 = 1234567.456;
printf("d2=|%g|\n", d2);
// 10. 指针类型
int *pi = &a;
printf("pi=%p\n", pi);
// 11. %
printf("%%%%");
}
程序的输出结果如下所示:
a=100
b=310
c=12c
e=100
e1=-100
c1=A
ch=abcd
d1=123.456000
d1=| 1.235e+02|
d2=|1.23457e+06|
pi=0x7fff5fbff8ac
%%
还有一些特殊的字符,使用printf输出时只是表示某种含义,而字符本身并不输出,这些字符我们把它们成为转义字符。例如,换行符“\n”水平制表符“\t”等。
下面的程序输出了某个人的信息,其中使用了\n 和 \t
void testPrintf3(){
printf("编号\t姓名\t年龄\n");
printf("01\ttom\t20");
}
程序输出结果为:
编号 姓名 年龄
01 tom 20
C语言中的转义字符,如下表所示:
该博客教程视频地址:http://geek99.com/node/962