0

特定の形式のシリアル番号を作成しようとしています。この番号はデータベースに入力されます。この時点で、sprintf を使用する必要がありますが、ネイティブ C++ メソッドが必要です。

サンプルコードは次のとおりです。

int i;

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

整数は 1 桁から 3 桁です。フォーマットは次のようにする必要があります。

001、…013、…101、…など

「シリアル番号」の形式は次のとおりです。

AAAAA001、…AAAAA013、…AAAAA101など

問題は、iostream マニピュレータを使用せずに C++ にネイティブであり、mingw-w64 ライブラリに含まれている方法があるかどうかです。それともブーストライブラリのようなものが必要ですか?

別の言い方をすれば、C sprintf 関数の C++ でのドロップイン置換はありますか?

コメントに基づいて編集:

ですから、これほど単純なものはありません....

int i;
string buffer;

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

これはうまくいかないことはわかっていますが、とにかく考えさせられます。sprintf の機能を提供するメソッドを使用して文字列クラス オブジェクトを直接操作する方法はありませんか?

4

1 に答える 1

1

最初は望ましくないと思ったストリームですが、質問に対する最良の回答として aruisdante の回答を採用しています。

最初に答えなければならない本当の質問は、「なぜ sstream を使いたくないのか」ということだと思います。最初にそれを確立しないと、少し XYProblem になります。なぜなら、sstream は与えられた問題を確実に明確に解決し、型安全かつ比較的効率的に解決するからです。– アリスダンテ

ストリームに対する私の理解は狭すぎました。私のアプリケーションでは stringstream がうまく機能するはずです。

再度、感謝します。

于 2015-02-16T19:41:45.650 に答える