sprintf函数以及其返回值

来源:互联网 发布:uml软件建模技术 编辑:程序博客网 时间:2024/06/10 00:46

函数功能:把格式化的数据写入某个字符串

头文件:stdio.h
函数原型:int sprintf( char *buffer, const char *format [, argument] … );
返回值:字符串长度(strlen)


MSDN中的例子如下

#include <stdio.h>

void main( void )
{
char  buffer[200], s[] = "computer", c = 'l';
int   i = 35, j;
float fp = 1.7320534f;


/* Format and print various data: */         

j  = sprintf( buffer,     "\tString:%s\n", s );  

// 注意的是这里的j为函数返回值,这里的buffer的内容已经被格式化为“\tString:                                                            //   %s\n”,这里的j的值为buffer所含字符串的长度,\t,\n都分别记为1个长度,因此第一个语                                          //句的j值为“\t ”(1)+“String:”(7)+s(8)+\n(1)=17

j += sprintf( buffer + j, "\tCharacter: %c\n", c );

   j += sprintf( buffer + j, "\tInteger:   %d\n", i );
   j += sprintf( buffer + j, "\tReal:      %f\n", fp );  //这里的buffer为数组形式,如果这里都不“+j”的话那么前面的每句都将被替换,最终屏幕输出只剩最后一行,程序可以调试一下加深理解

printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );

}


Output
Output:
             String:    computer
             Character: l
             Integer:   35
             Real:      1.732053


character count = 71