多样的sprintf函数

2014-11-23 23:24:17 · 作者: · 浏览: 5

函数种类:

字符串输出函数有很多,如下表所示:

ASCII

宽字元

常规

参数的变数个数

标准版

sprintf

swprintf

_stprintf

最大长度版

_snprintf

_snwprintf

_sntprintf

Windows版

wsprintfA

wsprintfW

wsprintf

参数阵列的指标

标准版

vsprintf

vswprintf

_vstprintf

最大长度版

_vsnprintf

_vsnwprintf

_vsntprintf

Windows版

wvsprintfA

wvsprintfW

wvsprintf

函数用法:

上表中所列出的函数中有两个最重要,最常用:

1. 参数的变数个数的最大长度版函数:

原型为:int _snprintf(char* _Dest, size_t _Count, const char* _Format,...)

其中_Count 表示能存进目标地址空间里的最大字元数。

用法例子:

1. char szBuffer [100] ;

2. _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函数来实作:

1. int _snprintf (char * szBuffer, size_t count, const char * szFormat, ...)

2. {

3. int iReturn ;

4. va_list pArgs ;

5. va_start (pArgs, szFormat) ;

6. iReturn = _vsnprintf (szBuffer, count,szFormat, pArgs) ;

7. va_end (pArgs) ;

8. return iReturn ;

}

摘自:扬风破浪 blog