printf
- 格式化输出,即 print format
- 头文件:<stdio.h>, 也可不用头文件
- 语法格式:printf(“格式控制字符串”,输出表列)
- 格式字符串格式:[标志][输出最少宽度][.精度][长度]类型
格式字符串类型
整型
- %d :以十进制形式输出带符号得整数,正数不输出符号
- %i :输出有符号十进制整数,效果同%d
- %u ; 输出无符号十进制整数
- %o %O : 输出八进制整数
- %x %X :输出十六进制整数
浮点型
- %f %lf : 以小数形式输出单、双精度实数,最多六位小数
- %g %G : 以小数形式输出单、双精度实数,不显无意义的零"0"
- %e %E : 以指数形式输出单、双精度实数
字符型
- %c : 输出单个字符
- %s: 输出字符串
格式化字符串标志
- ‘-’ : 结果左对齐,右边填写空格
- ‘+’ : 输出符号,正号或者负号
- 空格:输出为正时为空格,为负时为符号
- #对 %c %s %d %u 无影响 ;%x, 输出时加前缀0x, ; %o , 输出时前缀o;对%e、%g、%f 类当结果有小数时才给出小数点。
- printf的格式控制的完整格式:
% - .n l或h 格式字符
下面对组成格式说明的各项加以说明:
①% :表示格式说明的起始符号,不可缺少。
②- :有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,默认的精度为n=6位。
⑤ l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
最小输出宽度
用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
实例
#include<stdio.h>
#include<string.h>
int main()
{
char c, s[20] = “hello c!”;
int a=1234;
float f=3.141592653589;
double x=0.12345678912345678;
c='\x41';
printf("a=%d\n", a); //按照十进制整数格式输出,显示 a=1234
printf("a=%d %%\n", a); //输出%号 结果 a=1234%
printf("a=%6d\n", a); //输出6位十进制整数 左边补空格,显示 a= 1234
printf("a=%06d\n", a); //输出6位十进制整数 左边补0,显示 a=001234
printf("a=%2d\n", a); //a超过2位,按实际输出 a=1234
printf("a=%-6d\n", a); //输出6位十进制整数 右边补空格,显示 a=1234
printf("f=%f\n", f); //浮点数有效数字是7位,结果 f=3.141593
printf("f=%7.4f\n", f); //输出7位,小数点后4位,结果 f= 3.1416
printf("f=%4.7f\n", f); //小数点后7位,结果 f=3.1415927
printf("x=%lf\n", x); //输出长浮点数 x=0.123457
printf("x=%18.16lf\n", x); //输出18位,小数点后16位,x=0.1234567891234567
printf("c=%c\n", c); //输出字符 c=A
printf("c=%x\n", c); //以十六进制输出字符的ASCII码 c=41
printf("s[]=%s\n", s); //输出数组字符串Hello c
printf("s[]=%6.4s\n", s); //输出最多4个字符的字符串Hell
return 0;
}