vsprintf()-Windows程序设计

 

 1  #include  < stdarg.h >   
 2  #include  < stdio.h >  
 3  #include < stdlib.h >  
 4  char  buffer[ 80 ];  
 5  int  vspf( char   * fmt, ...)  
 6  {  
 7      va_list argptr;  
 8       int  cnt;  
 9      va_start(argptr, fmt);  
10      cnt  =  vsprintf(buffer, fmt, argptr);  
11      va_end(argptr);  
12       return (cnt);  
13  }  
14  int  main( void )  
15  {  
16       int  inumber  =   30 ;  
17       float  fnumber  =   90.0 ;  
18       char   string [ 4 =   " abc " ;  
19      vspf( " %d %f %s " , inumber, fnumber,  string );  
20      printf( " %s\n " , buffer);  
21      getch(); 
22       return   0 ;  
23 
输出为30 90.000000 abc
解释:
宏:va_list,va_start(),va_end()包含在#include <stdarg.h> 里
va_lists用于声明一个指向参数的指针.
va_start(argptr, fmt); 初始换这个指针,是指向fmt这个固定参数(fmt)后面开始的可变参数(...).
va_end宏结束可变参数的获取.
系统函数vsprintf(buffer, fmt, argptr)用于向buffer指定的串缓冲区写入以*fmt为格式化,以argptr为参数首址的数据。

 

 

你可能感兴趣的:(windows)