snprintf函數(shù)用于將格式化的數(shù)據(jù)寫(xiě)入字符串中,與sprintf函數(shù)類(lèi)似,但是snprintf函數(shù)可以控制寫(xiě)入的最大字符數(shù),避免發(fā)生緩沖區(qū)溢出的情況。
其基本用法如下:
int snprintf(char *str, size_t size, const char *format, ...);
其中,str是要寫(xiě)入的字符串的指針,size是最大寫(xiě)入字符數(shù)(包括結(jié)尾的’\0’),format是格式化字符串,后面的參數(shù)與format中的格式化符號(hào)對(duì)應(yīng)。
示例如下:
#include <iostream>
#include <cstdio>
int main() {
char buf[100];
int num = 123;
float f = 3.14;
snprintf(buf, 100, "The number is %d and the float is %.2f", num, f);
std::cout << buf << std::endl;
return 0;
}
在上面的示例中,snprintf函數(shù)將數(shù)字和浮點(diǎn)數(shù)格式化后寫(xiě)入buf字符串中,并輸出到控制臺(tái)。