int snprintf ( char * s, size_t n, const char * format, ... );
描述:
将格式化的输出写入大小缓冲区
如果在printf上使用了格式,则将使用与要打印的文本相同的文本组成字符串。
但是,不是打印,而是将内容以C字符串形式存储在s指向的缓冲区中(以n为
填充的最大缓冲区容量)。
如果结果字符串的长度超过了n-1个字符,则剩余的字符将被丢弃并且不被存储,
而是被计算为函数返回的值。
写入内容后自动添加终止空字符。
在格式参数之后,函数至少需要格式所需的其他参数。
参数:
s
指向存储结果C字符串的缓冲区的指针。
缓冲区应至少有n个字符的大小。
n
在缓冲区中使用的最大字节数。
生成的字符串的长度至多为n-1,为额外的终止空字符留下空间。
size_t是一个无符号整数类型。
format
包含格式字符串的C字符串,其格式字符串与printf中的格式相同。
返回值:
返回写入的字符数,不包括终止空字符。
如果发生编码错误,则返回负数。
注意,只有当这个返回值是非负值且小于n时,字符串才被完全写入。
eg:
/* snprintf example */
#include <stdio.h>
int main ()
{
char buffer [100];
int cx;
cx = snprintf ( buffer, 100, "The half of %d is %d", 60, 60/2 );
if (cx>=0 && cx<100) // check returned value
snprintf ( buffer+cx, 100-cx, ", and the half of that is %d.", 60/2/2 );
puts (buffer);
return 0;
}
Output:
The half of 60 is 30, and the half of that is 15. |