0

我正在尝试构建某种格式的序列号。该号码将被输入数据库。在这一点上,我不得不使用 sprintf,但我想要一个原生的 C++ 方法。

这是示例代码:

int i;

sprintf(buffer, "%03d", i);

整数将是 1 到 3 位之间的任意位置。格式需要如下所示:

001, ... 013, ... 101, ... 等等。

“序列号”的格式为:

AAAAA001, ... AAAA013, ... AAAA101 等

所以问题是,有没有一种方法可以做到这一点,它是 C++ 原生的,而不必使用 iostream 操纵器,并且包含在 mingw-w64 库中。或者它是否需要诸如 boost 库之类的东西?

另一种说法:在 C++ 中是否有 C sprintf 函数的替代品?

根据评论编辑:

所以没有什么比......

int i;
string buffer;

sprintf(buffer, "%03d", i);

我意识到这不起作用,但无论如何它给出了想法。有没有办法用服务于sprintf功能的方法直接对字符串类对象进行操作?

4

1 回答 1

1

我将 aruisdante 的答案作为该问题的最佳答案,尽管它是我最初认为不受欢迎的流。

我认为您必须首先回答的真正问题是“您为什么不想>使用 sstream ”?如果不首先确定它,这有点 >XYProblem,因为 sstream 肯定会清楚地解决给定的问题,>类型安全且相对有效。——阿瑞斯丹特

我对流的理解太狭隘了。看起来 stringstream 应该适用于我的应用程序。

再次感谢。

于 2015-02-16T19:41:45.650 回答