是否有适用于mingw库的原生字符串操作方法,它不涉及i / o流

时间:2015-02-16 15:43:17

标签: c++ printf sstream manipulators

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

以下是示例代码:

int i;

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

整数将为1到3位数。格式需要如下所示:

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

"序列号"格式为:

AAAAA001,... AAAAA013,...... AAAAA101等

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

另一种说法:C ++中是否存在C sprintf函数的替换?

根据评论进行编辑:

所以没有什么比......更简单了。

int i;
string buffer;

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

我意识到这不起作用,但无论如何它都给出了这个想法。没有办法直接在字符串类对象上使用sprintf函数的方法进行操作?

1 个答案:

答案 0 :(得分:1)

我把aruisdante的答案作为问题的最佳答案,尽管这是我最初发现不受欢迎的流。

  

我认为你首先必须回答的真正问题是“为什么你不想要>使用sstream”?在没有确定第一个的情况下,它是一个> XY问题,因为sstream肯定会清楚地解决给定的问题,>类型安全且相对有效。 - aruisdante

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

再次感谢。