回 帖 发 新 帖 刷新版面

主题:可变参数问题,如果我输入的参数一个是int,一个是char*,我该怎么处理!

我定义的可变函数如下,如果我调用的话,第2个参数只能为char*,为int则报错
我该怎么做才能这样writeFile("hello", 1000, "nihao")调用也没错呢,就是printf和format那样..............
void writeFile(const char* str, ...)
{
    va_list argp;
    char *para;
    va_start( argp, str);
    while (1)    
    {     
        para = va_arg( argp, char*);
        if (para == NULL ) 
            break;
    }
    return 0; 
}

回复列表 (共2个回复)

沙发

void Print(const char* fmt, ...)
{
    char buffer[4096] = {0};
    va_list argptr;
    va_start(argptr, fmt);
    _vsnprintf_s(buffer, 4096, fmt, argptr);
    va_end(argptr);
    printf(buffer);
}

int main()
{
         Print("%s, %d, %s", "hello", 1000, "nihao");
         char str[1024] = {0};
         sprintf(str, "%s, %d, %s", "hello", 1000, "nihao");
         Print(str);
         return 0;
}

板凳

感谢楼上的,我昨天用vsprintf也搞定了...
不知道还有vsprintf这个函数,真是够方便的...

我来回复

您尚未登录,请登录后再回复。点此登录或注册