gpt4 book ai didi

c++ - 如何用数组调用 printf?

转载 作者:行者123 更新时间:2023-11-28 07:34:05 26 4
gpt4 key购买 nike

我正在尝试创建一个简单的模板引擎,一个引擎它接受一个模式和一些变量并产生一个字符串输出。这是想法:

const char * pattern = ReadPattern(); // pattern is like "%s in %s ft"
vector<const char *> variable = ReadVariable(); // variable is like "6", "5".

如何用它们调用 printf 函数?理想情况下我可以做 printf(pattern, variable[0], variable[1]);但是因为直到运行时才知道模式和变量,我什至不知道变量的数量。据我了解,以编程方式构建 va_list 是不可移植的。

请帮忙,谢谢!

最佳答案

如果您对 vector 元素的数量有一个上限,那么它就相对简单了。假设上限为 3:

int printf_vector(const char *p, vector<const char *> v) {
switch (v.size()) {
case 0: return printf(p);
case 1: return printf(p, v[0]);
case 2: return printf(p, v[0], v[1]);
case 3: return printf(p, v[0], v[1], v[2]);
default: break;
}
return -E2BIG;
}

如果你没有上限,那么this is a bad idea .

关于c++ - 如何用数组调用 printf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076459/

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