1

boost::filesystem::file_size()戻りますboost::uintmax_t。では、どのように変換boost::uintmax_tするのstd::stringですか?

4

1 に答える 1

1

さて、あなたは次のようないくつかの簡単なアプローチを使うことができます:

boost::lexical_cast<std::string>(size);

または、stringstreamを手動で使用します。

static_cast<std::stringstream>(std::stringstream() << size).str()

数値の演算子はメンバーであるため、C++03でも一時的に機能するはずです。他のいくつかのオーバーロードは無料の関数であり、C ++ 03では一時的なものを受け入れませんが、左辺値参照std::stringstream().flush()を返すを使用でき、すべてのオーバーロードが機能します。operator<<

しかし、それは単なる数字ではありません。ファイルサイズです。したがって、丸めてkB / MB / GB / KiB / MiB/GiBユニットを処理する必要がある可能性が非常に高くなります。その場合はlibkibiを見てください。

于 2013-01-29T08:26:55.723 に答える