#include<stdio.h>
int main(void)
{
int a=123,b=12345,c=-1;
float f=123;
printf("%4d,%4d,%d,%o,%x,%X\n",a,b,c,c,c,c);
printf("%f,%10f,%10.2f,%-10.2f,%e\n",f,f,f,f,f);
printf("%3s,%7.2s\n","hello","HELLO");
printf("%.4s,%-5.3s\n","HELLO","hello");
printf("\"\x48\x65\x6c\x6c\x6f\x2c\x57\x6f\x72\x6c\x64\x21\"\n");
}
格式字符(小写字母) 说明
d 以十进制带符号的形式输出整数(对正数不输出符号)
o 以八进制无符号的形式输出整数(不输出前导符0)
x 以十六进制无符号的形式输出整数(不输出前导符0x)
u 以十进制无符号的形式输出整数
c 输出一个字符
s 输出一个字符串
f 以小数的形式输出单,双精度实数,隐含输出6位小数
e 以标准指数形式输出单,双精度实数,数字部分小数位数为6位
g 选用f或者e格式中输出宽度比较短的一种格式,且不输出无意义的0
l 用于长整型数,可加在格式符d,o,x,u的前边
m(一个具体的整数) 数据最小的输入输出宽度
.n(一个具体的整数) 对实数,表示输出几位小数;对字符串,表示截取的字符个数
-(负号) 输出的数据在域内向左对齐
\a 系统提示音(“嘀”的一声)
\b 倒退一格
\f 跳页
\n 换行
\r 机架返回
\t 水平跳格,相当于按TAB键
\v 垂直跳格
\‘ 显示单引号‘
\“ 显示双引号“
\\ 显示反斜线
\ddd 八进制表示的ASCII码,每个d代表一个八进制数字
\xdd 十六进制表示的ASCII码,每个d代表一个十六进制数字
格式说明符应当与所对应的表达式类型一致.比如,输出整型数据时,可以使用格式字符d,o,x,u等.
m为 指定的数据输出宽度.如果数据的实际宽度大于m ,则突破m的限制,按数据的实际宽度输出;如果数据的实际宽度小于m,则按m指示的宽度输出,输出时向右对其,左端补空格.
负号“-”表示如果数据的输出宽度小于m,则输出时数据向左对其,右端补空格.
“%m.nf”表示输出的浮点型数据共占m列(含小数点),其中小数点后有n位数字.
“%m.ns”表示输出的字符串共占m列,但只取字符串左端的n个字符.这n个字符输出在m列的右侧,左侧补空格.
对于o或x格式符,输出的数值不带符号位,而是将符号位也看做数值的一部分,因此不能直接输出负的八进制或十六进制数.
如果想输出字符“%”,则应该在“格式控制”字符串中连续写两个“%”,即两个“%”,表示一个“%”字符.
int main(void)
{
int a=123,b=12345,c=-1;
float f=123;
printf("%4d,%4d,%d,%o,%x,%X\n",a,b,c,c,c,c);
printf("%f,%10f,%10.2f,%-10.2f,%e\n",f,f,f,f,f);
printf("%3s,%7.2s\n","hello","HELLO");
printf("%.4s,%-5.3s\n","HELLO","hello");
printf("\"\x48\x65\x6c\x6c\x6f\x2c\x57\x6f\x72\x6c\x64\x21\"\n");
}
格式字符(小写字母) 说明
d 以十进制带符号的形式输出整数(对正数不输出符号)
o 以八进制无符号的形式输出整数(不输出前导符0)
x 以十六进制无符号的形式输出整数(不输出前导符0x)
u 以十进制无符号的形式输出整数
c 输出一个字符
s 输出一个字符串
f 以小数的形式输出单,双精度实数,隐含输出6位小数
e 以标准指数形式输出单,双精度实数,数字部分小数位数为6位
g 选用f或者e格式中输出宽度比较短的一种格式,且不输出无意义的0
l 用于长整型数,可加在格式符d,o,x,u的前边
m(一个具体的整数) 数据最小的输入输出宽度
.n(一个具体的整数) 对实数,表示输出几位小数;对字符串,表示截取的字符个数
-(负号) 输出的数据在域内向左对齐
\a 系统提示音(“嘀”的一声)
\b 倒退一格
\f 跳页
\n 换行
\r 机架返回
\t 水平跳格,相当于按TAB键
\v 垂直跳格
\‘ 显示单引号‘
\“ 显示双引号“
\\ 显示反斜线
\ddd 八进制表示的ASCII码,每个d代表一个八进制数字
\xdd 十六进制表示的ASCII码,每个d代表一个十六进制数字
格式说明符应当与所对应的表达式类型一致.比如,输出整型数据时,可以使用格式字符d,o,x,u等.
m为 指定的数据输出宽度.如果数据的实际宽度大于m ,则突破m的限制,按数据的实际宽度输出;如果数据的实际宽度小于m,则按m指示的宽度输出,输出时向右对其,左端补空格.
负号“-”表示如果数据的输出宽度小于m,则输出时数据向左对其,右端补空格.
“%m.nf”表示输出的浮点型数据共占m列(含小数点),其中小数点后有n位数字.
“%m.ns”表示输出的字符串共占m列,但只取字符串左端的n个字符.这n个字符输出在m列的右侧,左侧补空格.
对于o或x格式符,输出的数值不带符号位,而是将符号位也看做数值的一部分,因此不能直接输出负的八进制或十六进制数.
如果想输出字符“%”,则应该在“格式控制”字符串中连续写两个“%”,即两个“%”,表示一个“%”字符.