我有一个日志记录函数,它接受可变数量的参数并使用_vsnprintf来格式化它们。我的问题是,当我调试我的OCR自动化它返回的字符串被发送到日志,所以如果该文件是这样说的:C++ _vsnprintf意外的格式字符串
此位图说%的正
那么它将获得发送到我的日志记录功能是这样的:
void log(LPCSTR msg, ...)
{
char log[MAX_ALLOWED];
int length = sizeof(log)/sizeof(log[0]);
va_list argptr;
va_start(argptr, pzMsg);
// our msg accidentally has a %
if (strchr(msg, '%')) {
// debug assertion - no parameters were passed
_vsnprintf(log, length, msg, argptr);
}
log[length-1] = (char)0;
va_end(arg_ptr);
}
有没有办法,随用随取的“%”,我可以检查是否有任何参数一起?谢谢。
这就是'iostream'解决的问题。 – Puppy 2011-04-29 23:45:49