【发布时间】:2014-12-08 14:47:58
【问题描述】:
我在文件 i/o 函数中使用 var args。除非要输出的字符串包含 % 并且没有其他参数,否则它工作正常。例如。例如,字符串<name px=100% /> 会导致问题。代码大致如下:
void OutV(CString s, va_list args)
{
CString formatted;
formatted.FormatV(str, args);
// Do stuff with formatted....
}
有没有办法让% 符号不会导致问题。理想情况下,我希望它在上面的 OutV 函数中,这样它只需要在一个地方。
我不能简单地将所有 % 替换为 %% ,因为如果那里有 %d 则仍然需要将其替换为整数。
【问题讨论】:
-
我不能简单地将所有 % 替换为 %% ,因为如果那里有
%d则仍然需要替换。 -
那么你如何区分 '%d%dummyName' 中的 2
%呢? -
我已经稍微修改了我的答案。
标签: c++ mfc escaping variadic-functions cstring