vsprintf() - データのフォーマット設定とバッファーへの出力

標準

標準/拡張機能 C/C++ 依存項目

ISO C
XPG4.2
C99
Single UNIX Specification、バージョン 3

両方  

形式

#include <stdarg.h>
#include <stdio.h>

int vsprintf(char *  __restrict__target-string, 
             const char *  __restrict__format, va_list arg_ptr);

機能説明

vsprintf() 関数は、sprintf() に似ていますが、arg_ptr が、その番号がプログラムの呼び出しによって異なることがある引数のリストを指しているという点が異なります。反対に、sprintf() は引数のリストをもてますが、そのリストの引数の 数はプログラムをコンパイルしたときに決定されます。書式制御 ストリングの仕様については、fprintf()、printf()、sprintf() - データのフォーマット設定と書き込みを参照してください。

戻り値

正常に実行された場合、vsprintf() は target-string に書き込まれた文字数を戻します。

正常に実行されなかった場合、vsprintf() は負の値を戻します。
注: C 言語の一部の UNIX に基づくインプリメンテーションに 対比して、vprintf() ファミリーの z/OS® XL C/C++ インプリメンテーション は変数引数リストを指すポインターを増分します。引数を指すポインターを増やすかどうかを制御するために、vsprintf() を呼び出すたびにその後に va_end マクロを 呼び出します。

CELEBV05
⁄* CELEBV05                                      

   This example assigns a variable number of strings to string                  
   and prints the resultant string, using &vsprintf..                           
                                                                                
 *⁄                                                                             
#include <stdarg.h>                                                             
#include <stdio.h>                                                              
                                                                                
void vout(char *string, char *fmt, ...);                                        
char fmt1 [] = "%s  %s  %s¥n";
                                                                                
int main(void)                                                                  
{                                                                               
   char string[100];                                                            
                                                                                
   vout(string, fmt1, "Sat", "Sun", "Mon");                                     
   printf("The string is:  %s¥n", string);
}                                                                               
void vout(char *string, char *fmt, ...)                                         
                                                                                
{                                                                               
   va_list arg_ptr;                                                             
                                                                                
   va_start(arg_ptr, fmt);                                                      
   vsprintf(string, fmt, arg_ptr);                                              
   va_end(arg_ptr);                                                             
}                                                                               
                                                                                
出力:
The string is:  Sat  Sun  Mon

関連情報