1.printf的格式声明
%[标志][宽度][.精度][长度]类型
(1)标志
-:左对齐,printf输出数据默认为右对齐
+:当一个数为整数时,前面加上一个+符号,输出整数或小数的时候会显示正负号。
0:右对齐时,会用0 填充左边的空缺,默认的时候用空格填缺。
空格:输出正数的时候前面为空格,输出负数的时候前面带-符号。
#:%o和%x输出是加上八进制和十六进制的前缀。
注:printf默认输出右对齐,如果加上+,面对正数的时候会加上+,符号不受印象。
0只会在右对齐的时候起作用。
(2)用scanf读取浮点变量的时候,float使用%f,double使用%lf
printf输出浮点类型变量的时候float和double使用%f和%lf都可以
(3)宽度:用十进制数来表示输出数据的最小位数,若实际位数少于定义的宽度则补0或者空格。
注:使用的时候注意对齐方式。printf默认右对齐。
(4)精度:精度格式以字符“.”开头,后面跟上十进制整数,主要作用于浮点型数据,表示输出小数后面的尾数,如果作用于正数数据则按照一定的宽度输出数据,左侧空缺填充0。如果超出精度就会截取超出部分(四舍五入)
注:精度和宽度混用会如何??
对于整数类型混用精度和宽度,在右对齐的情况下,宽度情况下实际长度小于宽度则前面以空格填充;精度则是以0填充。
若果是左对齐的情况下,在宽度的情况下后面以空格填充,精度的情况下则还是以0填充
对于浮点数类型混用,则有些麻烦注意不要混用就好了
(5)长度:程度格式控制字符包括h和l两种,h表示按短数据类型输出。l表示按长数据类型输出。例如:%lf%hf
注:输出的数据极大超出范围的时候怎么解决?(Java中如何解决?记得处理再次做好标记防止忘记。)
对于更大的整数,c的基本数据类型就无能为力了,常用方法是利用数组进行范围扩大。如果只是输出可以用字符串(如果再有再补充)