0

以下代码有什么问题?我们怎样才能使函数 print() 像 printf 一样工作?

#include <stdio.h>
#include<stdarg.h>

void print(char *format,...)
{
    va_list args;
    va_start(args,format);
    printf(format,args);
}

int main() {
   print("%d %s",5,"le");
}
4

4 回答 4

7

如果您需要传递可变参数,请vprintf改用。

于 2012-05-21T15:58:22.500 回答
3

你需要 vprintf 那里。看看这个问题,它有一个类似的问题:printf 和 vprintf 函数系列有什么区别,什么时候应该使用一个而不是另一个?

于 2012-05-21T15:59:00.580 回答
3

您可能需要查看vprintf。该函数(和相关函数)允许您传递变量参数列表,并且它们处理格式。

于 2012-05-21T15:58:15.257 回答
1

首先,va_end()如果使用va_start().

printf()如果你想使用 ava_list作为参数,你不能使用。看看 vprintf()

例子:

void print(char *format,...)
{
    va_list args;
    va_start(args,format);
    vprintf(format,args);
    va_end(args);
}
于 2012-05-21T16:03:43.327 回答