boost::filesystem::file_size()
戻りますboost::uintmax_t
。では、どのように変換boost::uintmax_t
するのstd::string
ですか?
質問する
901 次
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 に答える