C中 snprintf()函数的作用


函数原型:int snprintf(char* dest_str,size_t size,const char* format,...);

函数功能:先将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至dest_str中。可以方便用于不同进制的转换。

注意事项:如果格式化后的字符串长度小于size,则将字符串全部拷贝至dest_str中,并在字符串结尾处加上‘\0’; 
如果格式化后的字符串长度大于或等于size,则将字符串的(size-1)拷贝至dest_str中,然后在字符串结尾处加上’\0’. 
若成功则返回预写入的字符串长度,若出错则返回负值。

例子:

 1 #include <stdio.h>
 2  
 3 int main () {
 4   char a[16];
 5   size_t i;
 6  
 7   i = snprintf(a, 13, "%012d", 12345);  // 第 1 种情况
 8   printf("i = %lu, a = %s\n", i, a);    // 输出:i = 12, a = 000000012345
 9  
10   i = snprintf(a, 9, "%012d", 12345);   // 第 2 种情况
11   printf("i = %lu, a = %s\n", i, a);    // 输出:i = 12, a = 00000001
12  
13   return 0;
14 }

 

注意:

linux和windows下是不同的

linux下用的是snprintf();
而windows下用的是_snprintf();


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM