sprintf
函数 <cstdio>
int sprintf ( char * str, const char * format, ... );
将格式化的数据写入字符串
如果在
printf上使用format,则使用与打印相同的文本组成一个字符串,但不打印内容,
而是将内容作为C字符串存储在str指向的缓冲区中。
缓冲区的大小应该足够大,以包含整个结果字符串(参见
snprintf获得更安全的版本)。
在写入的内容之后会自动附加一个终止空字符。
在format形参之后,函数期望至少与format所需的参数一样多的附加参数。
☲ 参数
str
指向存储C-string结果的缓冲区的指针。
缓冲区应该足够大,以容纳产生的字符串。
format
C字符串,包含一个格式字符串,该格式字符串遵循与printf格式相同的规范(请参阅
printf了解详细信息)。
... (additional arguments)
根据format 的不同,函数可能需要一系列附加参数,每个参数都包含一个用于替换format 中的格式说明符的值
(或者一个指向存储位置的指针,对于n)。
这些参数的数量至少应该与格式说明符中指定的值的数量一样多。其他参数被函数忽略。
☉ 返回值
如果成功,则返回所写的字符总数。此计数不包括自动附加在字符串末尾的其他空字符。
如果失败,则返回一个负数。
☣ 示例
/* sprintf example */
#include <stdio.h>
int main ()
{
char buffer [50];
int n, a=5, b=3;
n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
printf ("[%s] is a string %d chars long\n",buffer,n);
return 0;
}
|
输出:
[5 plus 3 is 8] is a string 13 chars long
|
有关格式化的更多示例,请参见
printf。
🍄 另请参阅
sscanf |
从字符串读取格式化的数据(function ) |
printf |
将格式化的数据写入stdout(function ) |
snprintf |
将格式化输出写入特定大小的缓冲区(function ) |