关于printf函数的一些问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 23:43:17
printf函数中,%后紧跟-,+,0,*,#这些符号或数字分别有何意义?请详细解答

没什么意义
即使有也说不清楚
就像你问
printf("please give the count to me,thank you!\n");
这句是什么意思

看懂的话就赶快了哦

d,i 以带符号的十进制形式输出整数(正数不输出符号)
o 以八进制无符号形式输出整数(不输出前导符0)
x,X 以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
u 以无符号十进制形式输出整数
c 以字符形式输出,只输出一个字符
s 输出字符串
f 以小数形式输出单、双精度数,隐含输出6位小数
e,E 以指数形式输出实数
g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
一些格式字符
“-” 表示左对齐;
“+” 表示右对齐;
“0” 表示域宽用前导0来填充;
“ #” 当type=c,s,d,i,u时没有影响
type=o,x,X时,在数值前增加'0'字符
type=e,E,f时,总是使用小数点
type=g,G时,除了数值为0外总是显示小数点

printf(const char *control_string,...)
其中+,-是用来调整输出对齐格式的,在%后跟-是迫使输出数据向左边对齐,+当时是向右边对齐咯
其中*,#用舆描述一些格式化代码。如果在g,f,e代码前有#,就确保即使没有十进制整数位也要输出十进制小数位,如果x代码前带#那麼十六进制将带0x显示,#不能用舆其它的任何数据类型;
最小域的宽度和精度描述符可以通过参数而不是常数告诉printf(),为了实现这一点,我们将用*作为前置符号,当编译程序扫描到格式串时,printf()将*舆变元串中的参数按顺序匹配。例如:下例中,最下域宽度为10