问题标签 [boost-format]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何使用 boost::format 对变量中包含小数位数的数字进行零填充?
我想对一个数字进行零填充,使其具有 5 位数字并将其作为字符串获取。这可以通过以下方式完成:
但是,我不想硬编码位数(即“%05u”中的 5)。
如何使用 boost::format,但通过变量指定位数?
(即输入位数,unsigned int numberOfDigits = 5
然后将 numberOfDigits 与 boost::format 一起使用)
c++ - boost::format hex 中的奇怪行为
我正在尝试将二进制数组:格式化为char* memblock
十六进制字符串。
当我使用以下内容时:
我得到以下输出:
当我尝试boost::format
像这样在 ofstream 上使用时:
我得到一个像这样的奇怪输出(在 Vi 中看到)0x0^?
:.
是什么赋予了?
c++ - 升压格式错误
当我尝试在 cygwin 中编译时,会出现这样的问题:
致命错误:boost/format.hpp:没有这样的文件或目录#include <boost/format.hpp>
我如何解决这个问题,请有人帮助我...
c++ - 如何从多个 boost::format 创建/组合/连接 boost::format
这是给定的:
'greetingwithname' 应该组合并重用 'greeting' 和 'name' 以便它等价于:
我如何/从多个 boost:format 对象创建 boost::format 对象的最佳方法是什么?
c++ - Boost::Format 与 char 数组
我环顾四周,一直找不到将 boost 格式返回的内容存储到 char 数组中的解决方案。例如:
我得到错误:
错误:期望一个表达式
我不知道我是否只是忽略了一个简单的解决方案,但我需要一个 const char* 作为回报。有大量代码暂时无法重写。我正在研究 VS2013 C++
c++ - 为什么 Boost Format 和 printf 在相同的格式字符串上表现不同
它的目标之一是提供 printf 的替代品,这意味着 format 可以解析为 printf 设计的格式字符串,将其应用于给定的参数,并产生与 printf 相同的结果。
当我使用相同的格式字符串比较 boost:format 和 printf 的输出时,我得到不同的输出。在线示例在这里
输出是:
升压格式: A:A:A:65
打印:65:41:A:65
不同之处在于我想将 char 显示为整数类型。
为什么有区别?这是一个错误还是想要的行为?
c++ - 仅在 windows 下 boost::format 异常
我已经在很多情况下使用了 boost::format,但是我发现了一个 Windows 实现没有像我预期的那样做出反应,因为它抛出了一个异常
我使用宏来定义不同平台的十六进制输出格式:
并调用格式如下:
请注意,我使用的语法与“fprintf”完美配合。
我想它来自 'uint64_t' 格式的十六进制,但是您知道以适用于所有平台的方式编写同一行吗?
c++11 - 使用可变参数馈送 boost::format
我正在尝试编写一个日志函数,它采用可变参数列表并在安全庄园中打印。
vprintf
似乎是显而易见的答案,但是当格式字符串期望的参数比提供的参数多时,我似乎找不到一种安全的方法来处理。
此外,如果我可以重新排列参数的打印顺序,那就太好了。
这第二个要求导致我boost::format
,这似乎正是我想要的,除了它不接受va_list
输入。
我做了一些广泛的搜索,我能得到的最接近的是这个解决方案:
boost::format with variadic template arguments
不幸的是,我仅限于特定的 gcc 版本,它似乎不包括std::initializer_list
在我的搜索中,我偶然发现boost::preprocessor
它似乎应该能够完成我想要的,但我正在努力实现它。
所以,理想情况下,我正在寻找的是如下工作的东西:
这MagicalFunctionCall(args)
会将我的参数转换为:例如
1, "Test", 3.4, "OtherString"
:
1 & "Test" & 3.4 & "OtherString"
我不一定与boost::preprocessor
任何东西相关联boost
,但在不引入任何额外的第 3 方依赖项的情况下完成此操作将是理想的(我们已经在项目的其他地方使用了 boost)。我只是推荐了这些库,因为它们似乎是完成上述所有工作的最有希望的。
谢谢!
c++ - 是什么阻止了 Boost.Format 表单使用我的流运算符重载作为可选 int?
我希望能够使用std::optional<int>
Boost.Format。
上面的代码给了我以下编译器错误:
如果我只是i
直接传递给std::cout
.
c++ - boost 格式为看似相同的字符串产生不同的输出
背景
我正在使用boost 格式库来格式化一些文本。我的输入是一个uint8_t
数组。这是我使用的代码:
问题
上面的代码产生这个输出:
oss << boost::format("%-24s%c%-10d%8s") % convertedStr % "#" % 512 % "999";
给出不同的输出并省略-24
并立即开始以下部分。
我猜想数组的长度大于格式长度说明符可能会导致这种情况,所以我在两个格式行都改为-24
了。-40
这是输出:
问题
我的代码有问题吗?
如何uint8_t
正确格式化从数组转换的字符串?