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),使得输出格式参数变量化

‘+’和‘ ’还有使输出小数点对齐的功能