sprintf 、vsprintf 、_vsntprintf

sprintf 、vsprintf 、_vsntprintf,第1张

sprintf 、vsprintf 、_vsntprintf

转载:https://blog.csdn.net/anye3000/article/details/6593551

sprintf函数的定义为:

int sprintf(char *szBuffer, const char *szFormat,...);

第一个参数:一个字符缓冲区,后面是一个格式字符串


sprintf并不是把格式化结果写到标准输出,而是将其存入szBuffer。


该函数返回该字符串的长度。


vsprintf 函数定义如下:

int vsprintf(char *string, char *format, va_list param);

vsprintf 是sprintf 的一个变形,它只有三个参数。


vsprintf 用于执行有不定数量参数的函数,类似printf 格式。


vsprintf的前两个参数与sprintf相同:一个用于保存结果的字符串缓冲区和一个格式化字符串。


第三个参数是指向格式化参数队列的指针


实际上,该指针指向在堆栈中供函数调用的变量。


va_list、va_start和va_end宏(在STDARG.H中定义)帮助我们处理堆栈指针。


_vsntprintf:

int CDECL MsgVsntprintf(char *szCaption, char *szFormat,...)
{
char szBuffer[];
va_list pArgList;
va_start (pArgList,szFormat);
_vsntprintf(szBuffer,sizeof(szBuffer)/sizeof(char),szFormat,pArgList);
va_end (pArgList);
return MessageBox(NULL,szBuffer,szCaption,);
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/588983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存