我有一個日誌記錄函數,它接受可變數量的參數並使用_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