C语言中的输出格式

Yuan.Sn

C语言中格式字符串一般形式为: %[标志][输出最小宽度][.精度][长度]类型,其中[ ]中的为可选项。

类型

%[标志][输出最小宽度][.精度][长度]类型
表示输出类型的格式字符 格式字符意义
a 浮点数、十六进制数字和p-计数法(C99)
A 浮点数、十六进制数字和p-计数法(C99)
c 输出单个字符
d 以十进制形式输出带符号整数(正数不输出符号)
e 以指数形式输出单、双精度实数
E 以指数形式输出单、双精度实数
f 以小数形式输出单、双精度实数
g 以%f%e中较短的输出宽度输出单、双精度实数,%e格式在指数小于-4或者大于等于精度时使用
G 以%f%e中较短的输出宽度输出单、双精度实数,%e格式在指数小于-4或者大于等于精度时使用
xxxxxxxxxx38 1typedef intQElemType;2​3typedef struct QNode4{5    QElemType data;6    struct QNode *next;7}QNode,*QueuePtr;8​9typedef struct10{11    QueuePtr front,rear;12}LinkQueue;13​14Status EnQueue(LinkQue *Q,QElemType e)15{16    QueuePtr s=(QueuePtr)malloc(sizeof(QNode));17    if(!s)18        exit(OVERLOW);  //存储分配失败19    s->data=e;20    s->next=NULL;21    Q->rear->next=s;22    Q->rear=s;23    return OK;24}25​26Status DeQueue(LinkQueue *Q,QElemType *e)27{28    Queue p;29    if(Q->front==Q->rear)30        return ERROR;31    P=Q->front->next;32    *e=p->data;33    Q->front->next=p->next;34    if(Q->rear==p)35        Q->rear=Qfront;36    free(p);37    return OK;38}C 有符号十进制整数(与%d相同)
o 以八进制形式输出无符号整数(不输出前缀O)
p 指针
s 输出字符串
x 以十六进制形式输出无符号整数(不输出前缀OX)
X 以十六进制形式输出无符号整数(不输出前缀OX)
u 以十进制形式输出无符号整数

标志

%[标志][输出最小宽度][.精度][长度]类型
标志字符 标志意义
- 结果左对齐,右边填空格
+ 输出符号( + 或者 - )
SPACE 输出值为正则空格,负为 -
# 对c,s,d,u类无影响;
对o类,在输出时加前缀0;
对x类, 在输出时加前缀0x或者0X;
对g,G 类防止尾随0被删除;
对于所有的浮点形式,#保证了即使不跟任何数字,也打印一个小数点字符
0 对于所有的数字格式,用前导0填充字段宽度,若出现-标志或者指定了精度(对于整数),忽略

输出最小宽度

%[标志][输出最小宽度][.精度][长度]类型

用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
1
2
3
4
5
6
7
8
9
10
#include "stdio.h"
int main()
{

printf("*%-10d*\n", 223);
printf("*%+10d*\n" , -232);
printf("*-*\n" , 223);
printf("*%#d*\n" , -232);
printf("\n");
}

精度

%[标志][输出最小宽度][.精度][长度]类型

1
2
3
4
5
6
7
8
9
10
11
12
#include "stdio.h"
int 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();
}

长度

%[标志][输出最小宽度][.精度][长度]类型

长度格式符 含义 适用类型 示例
h 与整数转换说明符一起使用,表示 short intunsigned short int short int, unsigned short int %hu, %hx, %6.4hd
hh 与整数转换说明符一起使用,表示 signed charunsigned char signed char, unsigned char %hhu, %hhx, %6.4hhd
j 与整数转换说明符一起使用,表示 intmax_tuintmax_t (C99) intmax_t, uintmax_t %jd, %8jx
l 与整数转换说明符一起使用,表示 long intunsigned long int long int, unsigned long int %ld, %8lu
ll 与整数转换说明符一起使用,表示 long long int (C99) long long int, unsigned long long int %lld, %8llu
L 与浮点转换说明符一起使用,表示 long double long double %Lf, %.4Le
t 与整数转换说明符一起使用,表示 ptrdiff_t (指针差值类型,C99) ptrdiff_t %td, %ti
z 与整数转换说明符一起使用,表示 size_t (sizeof 返回类型,C99) size_t %zd, %zx
Comments
On this page
C语言中的输出格式