printf函数族
printf(" ", , ...)比较常见,参数类型说明略过
fprintf(FHandle,stuff)将stuff写入特定的文件句柄FHandle中,倘若fprintf(stdout,stuff),从意义上来讲,相当于printf(stuff)。
sprintf(pointer,stuff)pointer指向一个字符数组,是一个指针,将stuff内容写入到该指针指向的数组当中。
三个函数的返回值都是已传送的字符数,而printf和fprintf都进行了I/O操作,sprintf与前两个不同,没用进行I/O操作。
下面说一下printf()函数输出格式:
%d,i 输出十进制整数
%u 输出无符号十进制数
%o 输出无符号八进制数(没有前导0,可以0%o或者%#o输出前导0)
%x,X 输出无符号十六进制数,没有前导0x,可以通过%#x来输出前导0x,x/X分别对应a~f/A~F
%c 输出单个字符
%s 输出字符串,直到遇到'\0',或有精度指定的字符为止
%f double型,十进制小数形式输出:m.dddddd默认小数精度为6
%e,E double型,强制输出科学计数法形式,默认小数精度为6
%g,G double型,自动调整输出格式
%p 输出指针地址
%n 保存输出已打印的字符数
修饰符:
宽度修饰符:用于规定数值打印域的宽度
精度修饰符:用于控制一个数值中输出数字的位数
- 对于整数格式%d%u%o%x,精度修饰符制定了打印数字的最少位数
- 对于%e%E%f格式,精度修饰符指定了小数位数
- 对于%g%G,精度修饰符指定了打印数值中有效数字位数
标志:
- ‘-’:默认对齐方式是右对齐,‘-’要求改为左对齐
- ‘+’:显示输出+/-符号
- 空白字符‘ ’:对于负数输出一个'-'号,对于一个正数就插入一个空白符
- ‘#’:对数值输出的格式进行微调,具体方式与特定格式有关,比如上文%o和%x的前导输出问题。另对浮点数的两个影响:1、要求小数点必须打印。比如输出“3.”。2、对于%G%g格式,数值尾缀0不会被丢掉,比如输出“3.000”。
- ‘*’:printf("%*.*s\n",12,5,str)等效于printf("%12.5s\n",str),使得输出格式参数变量化
‘+’和‘ ’还有使输出小数点对齐的功能