函數原型: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();