在printf()和scanf()函数中我们会常常看到%d、%f、%c等这样的一些字符,这些符号称之为转换说明,
因为它们指定了把数据转换成的可显示的形式。
转移说明符及其表示的意义
转换说明 表示意义
%a 浮点数、十六进制数字和p-计数法
%A 浮点数、十六进制数字和p-计数法
%c 一个字符
%d 有符号十进制
%e 浮点数、e-计数法
%E 浮点数、E-计数法
%f 浮点数、十进制计数法
%g 根据数值不同自动选择%f或%e。%e格式在指数小于-4或者大于等于精度是使用
%G 根据数值不同自动选择%f或%e。%E格式在指数小于-4或者大于等于精度是使用
%i 有符号十进制整数
%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x 使用十六进制数字0f的无符号十六进制整数
%X 使用十六进制数字0F的无符号十六进制整数
%% 打印一个百分号%
下面举例说明:
#include <stdio.h>
#define PI 3.1415926
int main(void)
{
int number=5;
float express=13.5;
int cost =3100;
printf("The %d CEOs drank %f cpu of express.\n",number,express);
printf("The value of pi is %f.\n",PI);
printf("Farewell! thou art too dear for my possessing,\n");
printf("%c%d \n",'$',cost);
return 0;
}
这样一段程序,它的输出是:
The 5 CEOs drank 13.500000 cpu of express.
The value of pi is 3.1415926.
Farewell! thou art too dear for my possessing,
$6200
若你觉得转换说明符就这么些,记下来并不是难事,那你可能就错了!
转换说明符还可以加一些 +、-、h、hh、L、j、#、0、l、t 这样的修饰符满足需求。
比如:
%Lf %10.4Le 表示一个long double 值
%hu 表示一个unsigned short int 类型值
%-20s 表示左对齐,字段宽度为20
......
有点多,宝宝记不住啊!