gpt4 book ai didi

c++ - 如何将可变数量的参数传递给 printf/sprintf

转载 作者:IT老高 更新时间:2023-10-28 12:05:39 24 4
gpt4 key购买 nike

我有一个类,它包含一个“错误”函数,它将格式化一些文本。我想接受可变数量的参数,然后使用 printf 对其进行格式化。

示例:

class MyClass
{
public:
void Error(const char* format, ...);
};

Error 方法应该接受参数,调用 printf/sprintf 对其进行格式化,然后对其进行处理。我不想自己编写所有格式,因此尝试弄清楚如何使用现有格式是有意义的。

最佳答案

void Error(const char* format, ...)
{
va_list argptr;
va_start(argptr, format);
vfprintf(stderr, format, argptr);
va_end(argptr);
}

如果您想在显示字符串之前对其进行操作,并且确实需要先将其存储在缓冲区中,请使用 vsnprintf 而不是 vsprintfvsnprintf 将防止意外的缓冲区溢出错误。

关于c++ - 如何将可变数量的参数传递给 printf/sprintf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056411/

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