函数种类:
字符串输出函数有很多,如下表所示:
| |
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