snprintf()用法
时间: 2023-07-18 09:37:11 浏览: 88
snprintf()是一个函数,用于将格式化的字符串写入到指定的字符数组中。它类似于sprintf(),但是它会限制输出字符串的长度,以避免缓冲区溢出。
snprintf()的用法如下:
```c
int snprintf(char *str, size_t size, const char *format, ...);
```
它接受四个参数:
- str:指向目标缓冲区的指针,它将包含输出的字符串。
- size:目标缓冲区的大小,这个参数可以用来避免缓冲区溢出。
- format:格式化字符串,它指定了输出的格式,就像printf()一样。
- ...:可选参数,用于替换格式化字符串中的占位符。
snprintf()会返回写入缓冲区的字符数,不包括结尾的空字符。如果输出的字符串超过了缓冲区的大小,它会截断字符串并在末尾添加一个空字符。在这种情况下,snprintf()会返回需要写入缓冲区的字符数,而不是实际写入的字符数。
示例代码:
```c
#include <stdio.h>
int main()
{
char buf[100];
int num = 123;
float f = 3.1415926;
int ret = snprintf(buf, sizeof(buf), "num=%d, f=%f", num, f);
printf("ret=%d, buf=%s\n", ret, buf);
return 0;
}
```
输出结果:
```
ret=16, buf=num=123, f=3.141593
```
阅读全文