永发信息网

请问在这里sprintf的用法

答案:1  悬赏:0  手机版
解决时间 2021-11-16 19:09
请问在这里sprintf的用法
最佳答案
由于sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf比printf有用得多。
sprintf是个变参函数,定义如下:int sprintf( char *buffer, const char *format [,argument] ... );除了前两个参数类型固定外,后面可以接任意多个参数。而它的
1. 格式化数字字符串
sprintf最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf在大多数场合可以替代itoa。如:
//把整数123打印成一个字符串保存在s中。
sprintf(s,"%d", 123); //产生"123"
可以指定宽度,不足的左边补空格:
sprintf(s,"%8d%8d", 123, 4567); //产生:" 123 4567"
当然也可以左对齐:
sprintf(s,"%-8d%8d", 123, 4567); //产生:"123 4567"
也可以按照16进制打印:
sprintf(s,"%8x", 4567); //小写16进制,宽度占8个位置,右对齐
2. 控制浮点数打印格式
浮点数的打印和格式控制是sprintf的又一大常用功能,浮点数使用格式符”%f”控制,默认保留小数点后6位数字,比如:
sprintf(s,"%f", 3.1415926); //产生"3.141593"
希望自己控制打印的宽度和小数位数,这时就应该使用:”%m.nf”格式,其中m表示打印的宽度,n表示小数点后的位数。比如:
sprintf(s,"%10.3f",3.1415626); //产生:" 3.142"
sprintf(s,"%-10.3f",3.1415626); //产生:"3.142 "
sprintf(s,"%.3f", 3.1415626);//不指定总宽度,产生:"3.142"
3. 连接字符串
sprintf的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连接字符串,从而在许多场合可以替代strcat,但sprintf能够一次连接多个字符串(自然也可以同时在它们中间插入别的内容,总之非常灵活)。比如:
char* who ="I";
char* whom ="CSDN";
sprintf(s,"%s love %s.", who, whom); //产生:"I love CSDN. "
4. 打印地址信息
有时调试程序时,我们可能想查看某些变量或者成员的地址,由于地址或者指针也不过是个32位的数,你完全可以使用打印无符号整数的”%u”把他们打印出来:
sprintf(s,"%u", &i);
不过通常人们还是喜欢使用16进制而不是10进制来显示一个地址:
sprintf(s,"%08X", &i);
然而,这些都是间接的方法,对于地址打印,sprintf 提供了专门的”%p”:
sprintf(s,"%p", &i);
我觉得它实际上就相当于:
sprintf(s,"%0*x", 2 * sizeof(void *), &i);
5. 利用sprintf的返回值
较少有人注意printf/sprintf函数的返回值,但有时它却是有用的,spritnf返回了本次函数调用最终打印到字符缓冲区中的字符数目。也就是说每当一次sprinf调用结束以后,你无须再调用一次strlen便已经知道了结果字符串的长度。如:
int len =sprintf(s, "%d", i);
对于正整数来说,len便等于整数i的10进制位数。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问以下成语的意思。春满人间,欣欣向荣,千
离婚生小孩,生完再复婚,这样可以不
2014年受网害了多少条人命
男友叫我去他家买东西,说做给他妈看,事后把
灰色外套配什么颜色的打底衫好?
古色精剪坊地址好找么,我有些事要过去,
被教育扶贫的作文
如何评价许嵩的等到烟火清凉这首歌
消费税:注会第三章消费税法 【例九】某高尔
怎么利用网络做宣传
1993年4月20号男和1982年5月25号女配吗
为什么大姨妈来了十天都不干净
谁有stefani的《serious》的歌词?
光谷四路最近哪个地方可以坐2号地铁
古代文学中,床和牀两个字有什么区别?
推荐资讯
北京联合大学和首都经贸大学哪个更好
苹果手机lD号怎么申请
七长八短猜一动物
求教 面条的素臊子,素卤
有机肥中的无机盐还是有机物?
古时候的弃疾是什么意思
舆鑫宾馆(东皇庙粮管所东)地址在什么地方,想
钓箱如何添加聚氨酯保温层
苏轼曾写下《登蓬莱阁记》描述蓬莱吗
12伏继电器换16伏的可以吗
韩庄是不是有个女的叫刘杰她的年龄十六岁
x平方-4x-12=0 怎么解?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?