printf系列主要有三个函数: printf , fprintf , sprintf 。
各自的功能很好记住,printf 向标准输出 输出内容; fprintf,就是向filestream(文件流)输出;sprintf,就是输出到string(字符数组中)。
各自的形式为: printf就不说了,
fprintf(文件流,“”,参数);
sprintf(字符数组,“”,参数);
这三个函数均有返回值,返回值为传送的字符数。
常见的格式类型有: %d, %u, %f, %c, %s, %o, %x, %p(输出指针) ,%e(科学计数法输出), %g
有几点需要注意的是 %x 与%X还是有点区别的,区别就是输出的值a~f是大写还是小写的区别。
%n,是用来统计当前已经输出了多少字符。比如 int a; printf("hello%n",&a); 此时a的值应该为5。但是%n在visual studio中默认情况下可能会被关闭了。
%%用来输出“%”号。
宽度修饰符
用来设置输出的时候最小的宽度。比如 printf("%8d",a); 这样子,如果a输出的数值没有8位,则输出结果为右对齐,左边补空格。若a本生就已经有8位或以上,则我们可以或略宽度修饰符,如实地输出a。 所以宽度修饰符不会截断,不会影响输出误差。
精度修饰符
用来设置输出的精度。
对于整形,用来设置打印出的最少字符个数。 比如printf("%.2d",1),输出的结果会为 01(即前面补0)
对于浮点数,用来设置小数点后面的位数。比如printf("%.2f",3.1212),输出结果为3.12
对于字符串,用来设置之多打印的位数。比如printf("%.2s","hello"),输出结果为"he"。
标志:
在 % 与 d、u什么之间还可以加上 "+" , "-",与空格。
加上正号的作用是 当数值为正数时,会打印出正号。比如printf("%+d",1),输出为+1
加上-号的作用是仅当在宽度修饰符存在的情况下才有用,用来修改宽度的对其方式,使其变为左对齐,右边填充空格
加上空格的作用是 当数值为正数时,不会打印正号,但是会留个空白。 主要是为对其着想的。
可变宽度与精度
在宽度描述符中我们只能输入整数,不能用宏表式(因为宏定义不能进入字符串里面)。为了消除这个局限,出现了可变宽度。
使用* 代替具体的数值,然后在参数后面定义。
使用方法如:
printf("%*.*f", 8, 2, 3.1415926);
这就等价与printf("%8.2f",3.1415926), 表示输出的总宽度为8位,小数点后2位,结果为“----3.14", -表示空格。
阅读(1853) | 评论(0) | 转发(2) |