C/C++中sprintf的用法

       原型:int sprintf( char *buffer, const char *format [, argument] … ); 功能:把格式化的数据写入buffer容器中(字符串),返回buffer的长度。这里s为一个buffer,类型为字符数组名或者字符指针(需要初始化)。
sprintf(s, "%d", 123); //产生"123"
sprintf(s, "%8d%8d", 123, 4567); //产生:"     123    4567"(123前5个字符宽,4567前4个字符宽)
sprintf(s,"%m.ns",cp);//这里m为m个字符宽,如果输出的多于m个字符,则按实际需要分配宽度,如果少于m个字符则在左边(-m.n时在右边,此时是左对齐)补足不够的字符数的宽度。n为截取cp的前n个字符,后面补'\0'。在格式化到s中时都将加有'\0'结束符。该函数的实际执行过程是:将s和format地址递加,逐个赋值,即:s[i]=format[i](i=0,1,2,……)。
       另外,s如果为数组,跟数组的长度没关系,也就是不会出现值溢出问题,因为这里取的只是首地址,字符多于一个时,首地址递加。当然不管用printf还是sprintf打印到屏幕和打印到字符串中,都是遇'\0'结束的。相反,如果字符数组没有'\0',调用printf或者sprintf时会出现未知数据。因为函数是直到遇到空字符结束的。

转载于:https://www.cnblogs.com/xmxu/archive/2012/08/20/2647386.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值