c语⾔中printf的转义字符,C语⾔Printf格式
C中格式字符串的⼀般形式为: %[标志][输出最⼩宽度][.精度][长度]类型, 其中⽅括号[]中的项为可选项。各项的意义介绍如下:
1.类型类型字符⽤以表⽰输出数据的类型,其格式符和意义下表所⽰:
表⽰输出类型的格式字符 格式字符意义
a 浮点数、⼗六进制数字和p-计数法(C99)
A 浮点数、⼗六进制数字和p-计数法(C99)
c 输出单个字符
d 以⼗进制形式输出带符号整数(正数不输出符号)
e 以指数形式输出单、双精度实数
E 以指数形式输出单、双精度实数
f 以⼩数形式输出单、双精度实数
g 以%f%e中较短的输出宽度输出单、双精度实数,%e格式在指数⼩于-4或者⼤ 于等于精度时使⽤G 以%f%e中较短的输出宽度输出单、双精度实数,%e格式在指数⼩于-4或者⼤于等于精度时使⽤i 有符号⼗进制整数(与%d相同)
o 以⼋进制形式输出⽆符号整数(不输出前缀O)
p 指针
s 输出字符串
x 以⼗六进制形式输出⽆符号整数(不输出前缀OX)
X 以⼗六进制形式输出⽆符号整数(不输出前缀OX)
u 以⼗进制形式输出⽆符号整数
/* 测试常见的输出类型 */
#include "stdio.h"
#include "conio.h"
main()
{
printf("The program test print style!\n");
/* 以⼗进制形式输出带符号整数(正数不输出符号) */
printf("%d\n" , 223);
printf("%d\n" , -232);
printf("\n");
/* 以⼋进制形式输出⽆符号整数(不输出前缀O) */
printf("%o\n" , 223);
printf("%o\n" , -232);
printf("\n");
/
* 以⼗六进制形式输出⽆符号整数(不输出前缀OX) */ printf("%x\n" , 223);
printf("%x\n" , -232);
printf("\n");
/* 以⼗进制形式输出⽆符号整数 */
printf("%u\n" , 223);
printf("%u\n" , -232);
printf("\n");
/* 以⼩数形式输出单、双精度实数 */
printf("%f\n" , 223.11);
printf("%f\n" , 232.11111111);
printf("%f\n" , -223.11);
printf("%f\n" , -232.11111111);
printf("\n");
/* 以指数形式输出单、双精度实数 */
printf("%e\n" , 223.11);
printf("%e\n" , 232.11111111);
printf("%e\n" , -223.11);
printf("%e\n" , -232.11111111);
printf("\n");
/* 以%f%e中较短的输出宽度输出单、双精度实数 */ printf("%g\n" , 223.11);
printf("%g\n" , 232.111111111111);
printf("%g\n" , -223.11);
printf("%g\n" , -232.111111111111);
printf("\n");
/* 输出单个字符 */
printf("%c\n" , 'a');
printf("%c\n" , 97);
printf("\n");
/* 输出单个字符 */
printf("%s\n" , "this is a test!");
printf("%s\n" , "2342o34uo23u");
printf("\n");
getch();
}
2.标志
标志字符为-、+、#、空格和0五种,其意义下表所⽰:
标志格式字符 标 志 意 义
- 结果左对齐,右边填空格
+ 输出符号(正号或负号)
空格 输出值为正时冠以空格,为负时冠以负号
# 对c,s,d,u类⽆影响;对o类,在输出时加前缀0;对x类,
在输出时加前缀0x或者0X;对g,G 类防⽌尾随0被删除;
对于所有的浮点形式,#保证了即使不跟任何数字,也打印⼀个⼩数点字符
0 对于所有的数字格式,⽤前导0填充字段宽度,若出现-标志或者指定了精度(对于整数),忽略
3.输出最⼩宽度
⽤⼗进制整数来表⽰输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。/* 测试标志字符为-、+、#、空格四种 */
#include "stdio.h"printf怎么输出字符
#include "conio.h"
main()
{
/* 以⼗进制形式输出带符号整数(正数不输出符号) */
printf("*%-10d*\n", 223);
printf("*%+10d*\n" , -232);
printf("*%2d*\n" , 223);
printf("*%#d*\n" , -232);
printf("\n");
getch();
/* 以⼋进制形式输出⽆符号整数(不输出前缀O) */
printf("*%-10o*\n" , 223);
printf("*%+10o*\n" , -232);
printf("*%o*\n" , 223);
printf("*%#o*\n" , -232);
printf("\n");
getch();
/* 以⼗六进制形式输出⽆符号整数(不输出前缀OX) */
printf("$%-10x$\n" , 223);
printf("$%010x$\n" , -232);
printf("$% x$\n" , 223);
printf("$%#x$\n" , -232);
printf("\n");
/* 以⼗进制形式输出⽆符号整数 */
printf("%-10u\n" , 223);
printf("%+10u\n" , -232);
printf("% u\n" , 223);
printf("%#u\n" , -232);
printf("\n");
getch();
/
* 以⼩数形式输出单、双精度实数 */
printf("%-10f\n" , 223.11);
printf("%+10f\n" , 232.11111111);
printf("% f\n" , -223.11);
printf("%#f\n" , -232.11111111);
printf("\n");
getch();
/* 以指数形式输出单、双精度实数 */
printf("%-10e\n" , 223.11);
printf("%+10e\n" , 232.11111111);
printf("% e\n" , -223.11);
printf("%#e\n" , -232.11111111);
printf("\n");
getch();
/* 以%f%e中较短的输出宽度输出单、双精度实数 */ printf("%-10g\n" , 223.11);
printf("%+10g\n" , 232.111111111111);
printf("% g\n" , -223.11);
printf("%#g\n" , -232.111111111111);
printf("\n");
getch();
/* 输出单个字符 */
printf("%-10c\n" , 'a');
printf("%+10c\n" , 97);
printf("% c\n" , 'a');
printf("%#c\n" , 97);
printf("\n");
getch();
/* 输出单个字符 */
printf("%-20s\n" , "this is a test!");
printf("%+20s\n" , "2342o34uo23u");
printf("% 20s\n" , "this is a test!");/* 不⾜补空格 */
printf("%#s\n" , "2342o34uo23u");
printf("\n");
getch();
}
4.精度
精度格式符以“.”开头,后跟⼗进制整数。本项的意义是:如果输出数字,则表⽰⼩数的位数;如果输出的是字符,则表⽰输出字符的个数;若实际位数⼤于所定义的精度数,则截去超过的部分。
/* 测试精度 */
#include "stdio.h"
#include "conio.h"
main()
{
printf("%.3d\n" , 5555);
getch();
printf("%.3f\n" , 0.88888);
getch();
printf("%.3f\n" , 0.9999);
getch();
printf("%.4s\n" , "this is a test!");
getch();
}
5.长度
长度格式符为h,l两种,h表⽰按短整型量输出,l表⽰按长整型量输出。
h和整数转换说明符⼀起使⽤,表⽰⼀个short int 或者unsigned short int类型的数值 ,⽰例:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论