为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++ C
跃然一笑 2019-10-16 11:03:06
我有一个类,其中包含一个“错误”函数,该函数将格式化某些文本。我想接受可变数量的参数,然后使用printf格式化它们。例:class MyClass{public:    void Error(const char* format, ...);};Error方法应该接受参数,调用printf / sprintf对其进行格式化,然后对其进行处理。我不想自己写所有格式,因此尝试弄清楚如何使用现有格式很有意义。
查看完整描述

3 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

void Error(const char* format, ...)

{

    va_list argptr;

    va_start(argptr, format);

    vfprintf(stderr, format, argptr);

    va_end(argptr);

}

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


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 1360 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信