boost::filesystem::file_size()
返回boost::uintmax_t
。那么,如何转换boost::uintmax_t
为std::string
?
问问题
901 次
1 回答
1
好吧,您可以使用一些简单的方法,例如:
boost::lexical_cast<std::string>(size);
或手动使用字符串流:
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 回答