跨平台vsnpritf和va_list
来源:互联网 发布:妈妈说就算域名在长廊 编辑:程序博客网 时间:2024/04/26 15:48
void FormatOutput(const char* lpszFormat, ...)
{
va_list argList;
va_start(argList, lpszFormat);
int flat = -1;
int size = 100;
char* buf = NULL;
while(flat < 0)
{
char* buf = NULL;
while (flat<0)
{
if (buf) {
delete[] buf;
buf = NULL;
}
#ifdef _WIN32
buf = new char[size + 1];
if (buf == NULL) {
va_end(argList);
return ;
}
//如果源串长度超过目的串,则返回-1;没超过的话,拷贝给定长度的字符,不包括'\0'
flat = _vsnprintf (buf, size, lpszFormat, argList);
if (flat<0) {
size += 100;
}
#else //在linux上返回其所需长度
va_list argDest;
va_copy(argDest, argList);
size = vsnprintf(NULL, 0, lpszFormat, argDest);
buf = new char[size + 1];
if (buf == NULL) {
va_end(argList);
return ;
}
int tf = vsnprintf(buf, size+1, lpszFormat, argList);
printf(buf);
printf("\n");
if (tf>size) {
flat = -1;
size = tf + 1;
}
else {
flat = tf;
}
#endif
}
buf[flat] = 0;
printf(buf);
printf("\n");
}
va_end(argList);
}
- 跨平台vsnpritf和va_list
- va_list和vsnprintf
- va_list和vsnprintf
- va_list和vsnprintf
- va_list和vsnprintf
- va_list原理和用法
- va_list和vsnprintf、getopt
- gcc多平台va_list重载问题
- va_list
- va_list
- va_list
- va_list
- va_list
- va_list
- va_list
- va_list
- va_list
- Va_list
- 对于Android中消息机制的一些理解
- sqlplus中影响sql查询的几个参数设置
- My Python Summary
- android广播
- 开始了
- 跨平台vsnpritf和va_list
- 计算机病毒对消息钩子的利用与对抗
- 单片机最小系统的制作电路图
- 第一次C程序设计作业
- 存储瞎侃
- winform 清空界面控件的小技巧
- Linux 内核编译安装
- scilab读取txt数据的方法
- Nexus4水货手机验机方法