我有一個(gè)類,其中包含一個(gè)“錯(cuò)誤”函數(shù),該函數(shù)將格式化某些文本。我想接受可變數(shù)量的參數(shù),然后使用printf格式化它們。例:class MyClass{public: void Error(const char* format, ...);};Error方法應(yīng)該接受參數(shù),調(diào)用printf / sprintf對(duì)其進(jìn)行格式化,然后對(duì)其進(jìn)行處理。我不想自己寫所有格式,因此嘗試弄清楚如何使用現(xiàn)有格式很有意義。
3 回答

天涯盡頭無女友
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
void Error(const char* format, ...)
{
va_list argptr;
va_start(argptr, format);
vfprintf(stderr, format, argptr);
va_end(argptr);
}
如果要在顯示字符串之前對(duì)其進(jìn)行操作,并且確實(shí)確實(shí)需要先將其存儲(chǔ)在緩沖區(qū)中,請(qǐng)使用vsnprintf代替vsprintf。vsnprintf將防止意外的緩沖區(qū)溢出錯(cuò)誤。
- 3 回答
- 0 關(guān)注
- 1442 瀏覽
添加回答
舉報(bào)
0/150
提交
取消