printf, fprintf, sprintf,snprintf 区别

1.4种格式化输出区别

  printf,fprintf,sprintf都是格式化输出命令,它们的用法与区别可以通过Linux中命令“man printf”来查看。
  int printf(const char *format,***)将格式输出到stdout
  int fprintf(FILE *steam,const char *format,***)格式化输出到文件流中,即写入文件
  int sprintf(char *str,const char *format,***)格式化输出到字符串str中,注意此时需要预先给str分配足够大的空间。sprintf最常用的场景是将整数转换为字符串,可替代atoi函数。
  int snprintf(char *str,size_t n,const char *format,*** )格式化输出到字符串str中,但是只写入长度为n的输出。

2.格式化输出时的注意事项

  sprintf()在转换整数时,需考虑输出数的格式,如

sprintf(str,"%4x",-1);

str的值是多少呢?时间测试会发现,str为FFFFFFFF而不是4位宽的FFFF。因为函数参数在入栈计算机并不知道-1是32位的还是16位的,就会按照 32位来存储,并且高位是符号位扩展,当格式化输出时,4位宽不够,就会自动补到32位

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值