-1
我想寫一個有條件的printf,這樣如何在printf上創建包裝?
class ConditionalPrintf
{
public:
ConditionalPrintf(bool print)
: print_(print)
{}
void printf(int x, double y, char b, const char* format, ...) const
{
// use x, y and b
va_list argptr;
va_start(argptr, format);
if (print_)
printf(format, argptr);
va_end(argptr);
}
private:
bool print_;
};
的東西,但是它打印亂碼。有什麼不對的嗎?可能隱含這個參數改變的東西?
另外,如果這不是什麼好主意,還有什麼其他解決方案?我只是不想寫if (print) printf(...)
十億次。
看看vprintf:http://en.cppreference.com/w/cpp/io/c/vfprintf –
不,我不想使用它,我需要了解我的程序有什麼問題。 –
你的程序有什麼問題是你沒有使用它。它旨在將va_list轉發到printf! –