多様なsprintf関数

1456 ワード


関数の種類:
文字列出力関数は次の表のように多くあります.
 
 
ASCII
ワイドフォント
標準
パラメータの変数数
 
 
 
標準版
sprintf
swprintf
_stprintf
最大長版
_snprintf
_snwprintf
_sntprintf
Windows版
wsprintfA
wsprintfW
wsprintf
パラメータ配列の指標
 
 
 
標準版
vsprintf
vswprintf
_vstprintf
最大長版
_vsnprintf
_vsnwprintf
_vsntprintf
Windows版
wvsprintfA
wvsprintfW
wvsprintf
 
関数の使用方法:
上の表に示す関数の中で最も重要なものは2つあり、最もよく使われています.
1.パラメータの変数個数の最大長版関数:
プロトタイプ:int_snprintf(char* _Dest, size_t _Count, const char* _Format,...)
そのうち_Countはターゲットアドレス空間に格納できる最大文字数を表す.
使用例:
 
char szBuffer [100] ;
_snprintf (szBuffer, sizeof(szBuffer), "The sum of %i and %i is %i", 5, 3, 5+3) ;

 
2.パラメータ配列の指標の最大長版関数:
プロトタイプ:int_vsnprintf(char* _Dest, size_t _Count, const char* _Format, va_list _Args)
そのうち_Countはターゲットアドレス空間に格納できる最大文字数を表し、
              va_ListはC標準ライブラリ定義のタイプです.
使い方例:実は_snprintf関数の内部で可能な実装方法は_vsnprintf関数を実装するには:
int _snprintf (char * szBuffer, size_t count, const char * szFormat, ...)
{
	int     iReturn ;
	va_list pArgs ;
	va_start (pArgs, szFormat) ;
	iReturn = _vsnprintf (szBuffer, count,szFormat, pArgs) ;
	va_end (pArgs) ;
	return iReturn ;
}