gpt4 book ai didi

c - 使用 va_args 打印另一个参数

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:05 24 4
gpt4 key购买 nike

我有一个函数实现了 printf 的自定义变体。有谁知道如何使用 va_list 打印出更多参数?我的格式类似于 "%d some text %s"。我需要 a,作为第一个参数打印。

void func (int a, char *fmt, ...) {
va_list ap;
va_start (ap, fmt);
// vprintf(stdout, fmt, a, ap) //Can't do like this :(
vfprintf(fmt, a, ap); //Or like this :(
va_end(ap);
}

最佳答案

如果 a 总是以相同的方式打印,它不应该是传入格式的一部分。您应该单独打印它。

在您提供的示例中,将格式字符串更改为 "some text %s"。然后你的函数可以这样做:

void func (int a, char *fmt, ...) {
va_list ap;

// first print the function specific fields
printf("%d ", a);

// then the user's format
va_start (ap, fmt);
vprintf(fmt, ap);
va_end(ap);
}

关于c - 使用 va_args 打印另一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47676372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com