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

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


例:


class MyClass

{

public:

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

};

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


跃然一笑
浏览 1351回答 3
3回答

天涯尽头无女友

void Error(const char* format, ...){    va_list argptr;    va_start(argptr, format);    vfprintf(stderr, format, argptr);    va_end(argptr);}如果要在显示字符串之前对其进行操作,并且确实确实需要先将其存储在缓冲区中,请使用vsnprintf代替vsprintf。vsnprintf将防止意外的缓冲区溢出错误。
打开App,查看更多内容
随时随地看视频慕课网APP