格式化输出
在使用printf函数时,当系统遇到输出的转换说明符后,会自动用后面对应的输出项的值代替它的位置,然后输出。格式控制字符串中的转换字符应与输出列表中的待输出项之间应一一对应,这些转换字符控制对应的输出项以该格式输出。数据类型必须与格式符相匹配。
格式控制字符串的一般形式:
% [修饰符]转换说明符
其中修饰符为可选项,包括标志修饰符、宽度修饰符、精度修饰符、长度修饰符,用于确定输出数据的宽度、精度、对齐方式等,用于产生更加规范、整齐、美观的数据输出形式,当没有修饰符时,以上各项按系统缺省值设定显示。
1)转换说明符
转换说明符规定了对应输出项的输出格式,即将输出的数据转换为指定的格式输出。该项不能省略。常用的转换说明符及其含义见表1。
表1 转换说明符及其含义
转换说明符
意义
C
按字符型输出
d或i
按十进制整数输出
u
按无符号十进制整数输出
f
按浮点型小数输出
E或e
按指数形式(科学计数法)输出
o
按八进制整数输出(不输出前缀o)
X或x
按十六进制整数输出(不输出前缀ox)
s
按字符串输出
G或g
按e和f格式中输出宽度较短的一种形式输出
转换说明符要与%一起使用,不能省略%。上表中的字符只有放在%的后面才作为输出的转换说明。
例如:
int max;
printf(“%d”,max);
表示变量max的值以十进制整数形式输出。
又如:
int d=15;
printf(“d=%d”,d);
在该格式控制字符串中,第1个d不是输出格式字而是一个普通字符,需要按原字符形式输出,第3个d是一个变量名,是输出项,只有放在%后的第2个d才是转换说明符, 说明变量d的值(15)以十进制整数形式输出。输出格式是:d=15。
提示
printf()函数中的格式字中,除格式说明符E、G、X外,其它格式说明符必须小写。
例1:输出格式控制符的使用。
main( )
{
int a1=+400,a2=-400;
float b=3.1415926,e=31415.26535898;
float g=3.140000;
char c='a';
double d=3.1415926535898;
printf("a1=%d\n",a1);
printf("a1=%o\n",a1);
printf("a1=%x\n",a1);
printf("a1=%u\n",a1);
printf("a2=%d\n",a2);
printf("a2=%u\n",a2);
printf("b=%f\n",b);