最近我遇到了这个函数(在logger类中使用)。我理解
是的,但我不知道
怎样
:
void Reporter::print( const char* szFormat, ...)
{
// note: m_out is a FILE*
va_list args;
va_start(args, szFormat);
vfprintf( m_out, szFormat, args);
va_end(args);
}
reference
,但我还是不清楚。最让我烦恼的是,这并不像预期的那样有效。最后一个数字是0,字符串是(null),尽管它应该打印一些大于0的数字和文件路径。
案例1:
rep.print( "Values: %08X %08X %08X %08X %08X %08X %d %s\n", val1, val2, val3, val4, val5, val6, source.GetLength(), szPath );
// source.GetLength() returns a size_t, szPath is a const char* and IS indeed a valid string
但换成这个效果很好:
rep.print( "Values: %08X %08X %08X %08X %08X %08X", val1, val2, val3, val4, val5, val6 );
rep.print( " %d %s\n", source.GetLength(), szPath );