【发布时间】:2014-03-31 10:17:15
【问题描述】:
我需要在运行时用 C 或 C++ 格式化字符串(但不需要像 this 示例那样使用 boost)。
例如:在运行时,我得到像这样的输入字符串“hello world %d %u %s”和带有值的数组。我必须打印格式化的字符串。
我正在寻找 c、c++ 或 std::function 的解决方案。
有人对我有想法吗?
提前致谢
编辑: 带值的数组是指一个字符数组,它按字节存储值。在上面的示例中,前四个字节将是第一个参数 %d,接下来的四个字节将是 %u 的值,依此类推。
【问题讨论】:
-
也许您需要this 之类的东西?还是我误解了你的问题?
-
“带值的数组”?显示代码示例。
-
C 和 C++ 是两种不同的语言。使用其中之一。 std::function... 你这是什么意思?
-
实现自己的 printf 相当复杂。例如,您是否支持
%-3.6s和%04llu?相反,如果您只支持一定数量的令牌,例如%d等,那么只需解析您的字符串以查找这些内容并在找到它们时对其进行操作。