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