printf函数中的格式转化字符及其含义
格式转换符含义对应的表达式数据类型
%d 或 %i以⼗进制形式输出⼀个整型数据有符号整数
%x 或 &X以⼗六进制格式输出⼀个⽆符号整型数
⽆符号整数
据
%o以⼋进制格式输出⼀个⽆符号整型数据⽆符号整数
%u以⼗进制格式输出⼀个⽆符号整型数据⽆符号整数
%c输出⼀个字符型数据字符型
%s输出⼀个字符串字符串
%f以⼗进制⼩数形式输出⼀个浮点型数据浮点型
%e 或 %E以指数形式输出⼀个浮点型数据浮点型
%g⾃动选择合适的形式输出数据浮点型
%p以主机的格式显⽰指针指针类型
另外,可以在格式转换字符和%之间插⼊⼀些辅助的格式控制字符。因此,格式控制字符的⼀般格式为:
%[flag][width][.precision][size]Type
有符号整数的输出
输出有符号整数的格式控制符的⼀般形式为:
%[-][+][0][width][.precision][l][h]d
其中各控制符的说明如下:
-:表⽰输出的数据左对齐,默认时是右对齐。
+:输出正数时,在数的前⾯加上+号。
0:右对齐时,如果实际宽度⼩于width,则在右边的空位补0。
width:⽆符号整数,表⽰输出整数的最⼩宽度。若实际宽度⼤于width,则按照实际宽度输出。
precision:⽆符号整数,表⽰⾄少要输出precision位。若整数的位数⼤于precision,则按照实际的位数输出,否则在左边的空位上补0。
l:输出长整形数据
h:输出短整形数据
⽆符号整数的输出
输出⽆符号整数的格式控制符的⼀般形式为:
%[-][#][0][width][.precision][l][h]u|o|x|X
其中各控制符的说明如下:
#:当以⼋进制形式输出数据(%o)时,在数字前输出0;当以⼗六进制形式输出数据(%x或%X)时,在数字前输出0x或0X。
precision:与前⾯介绍的相同,但要注意⼋进制数字前的0和⼗六进制前的0x或0X同样占位数。
其他字段与前⾯介绍的相同。
⼩结:
格式转换符数据类型
%u unsigned int
%ld long
%lx⼗六进制表⽰long
%lo⼋进制表⽰long
%hd short
%hx⼗六进制表⽰short
%ho⼋进制表⽰short
%ho⼋进制表⽰short
%lu unsigned long
%lld long long
%llu unsigned long long
实数的输出
输出实数的格式控制符的⼀般形式为:
%[-][+][#][0][width][.precision][l|L]f|e|E|g|G
其中各控制符的说明如下:
#:必须输出⼩数点。
precision:规定输出实数时,⼩数部分的位数。
l:输出double型数据(默认也是输出double型数据)。
L:输出long double型数据。
其他字段的含义与前⾯介绍的相同。
字符和字符串的输出
输出字符和字符串的格式控制符的⼀般形式为:
输出字符:%[-][0][width]c
输出字符串:%[-][0][width][.precison]s
其中各控制符的说明如下:
precision:只输出字符串的前precision个字符。
其他字段的含义与前⾯介绍的相同。
其它可⽤的修饰符
标志意义
(空格)有符号的值若为正,则显⽰时带前导空格(但是不显⽰符号);若为负,则带减号符号。+标志会覆盖空格标志。⽰例:"% 6.2f"
*如果您不想事先指定字段宽度,⽽是希望由程序来指定该值,那么您可以在字段宽度部分使⽤*代替数字来达到⽬的,但是您也必须使⽤⼀个参数来告诉函数字段宽度应该是什么。(注意在scanf函数中*是另⼀种含义。)
⽰例:printf("The number is: %*d.\n", width, number);
使⽤printf函数要注意⼀下⼏点
printf怎么输出字符1. 格式控制字符串后⾯表达式的个数⼀般要与格式控制字符串中的格式控制符的个数相等。
2. 输出时表达式值的计算顺序是从右到左。
3. 格式转换符中,除了X、E、G以外,其他均为⼩写。
4. 表达式的实际数据类型要与格式转换符所表⽰的类型相符,printf函数不会进⾏不同数据类型之间的⾃动转换。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论