一、问题
printf( ) 函数的作⽤是向终端输出若⼲个任意类型的数据,此函数由格式控制部分和输出表列两部分组成,格式控制部分⼜由“%”和格式字符串组成,那么,此函数格式字符串部分有哪些参数呢?
二、解答
printf( ) 函数的格式字符串由修饰符和类型组成。 printf( ) 函数的类型表⽰输出的数据类型。类型的格式符和意义如表所示。
格式符 | 意义 |
d | 以⼗进制形式输出有符号整数(正整数不输出符号) |
u | 以⼗进制形式输出⽆符号整数 |
o | 以⼋进制⽆符号形式输出整数(不输出前导符0) |
x | 以⼗六进制形式输出⽆符号整数(不输出前缀0x) |
f | 以⼩数形式输出单、双精度实数 |
g | 以指数形式输出单、双精度实数 |
c | 输出单个字符 |
s | 输出字符串 |
g | 以%f或%e中较短的输出宽度输出单、双精度实数 |
printf( ) 函数的参数中还有好多起修饰作⽤的符号,现在介绍⼏种常见的,例如:
(1)标志符号。标志字符有+、-、#、空格,其中“-”号表示输出结果左对齐,右边填空格;“+”表⽰输出符号,即正号或负号;“#”的应⽤对c、s、d、u 这⼏个格式符没有影响,但是对,格式符的影响是在输出时加前缀0,对x格式符,在输出时加前缀 0x, 对e、g、f三个格式符,当结果有⼩数时才给出⼩数点。
(2)长度符号。长度字符有h和1,h表⽰按短整型量输出,1表示按长整型量输出。
(3)输出最⼩宽度。输出最⼩宽度并没有什么特定的字符,⽽是⽤⼗进制整数来表示。⽤⼗进制整数表⽰输出的最少位数,若实际位数多于定义的宽度,则按实际位数输出; 若实际位数少于定义的宽度,则补以空格或0。
(4)精度符号。精度格式符以“.”开头,后跟⼗进制数。如果输出的是数,表示⼩数点后保留⼏位⼩数的形式:如果输出的是字符,表⽰输出字符的个数;若实际位数⼤于所定义的精度数,则去掉超过的部分。
三、总结
向终端输出数据信息的函数 printf( ) 是在程序中经常⽤到的,关于它的参数⼤家⼀定要牢牢掌握,这样才能写出更完美的代码。