【发布时间】:2014-03-03 08:58:32
【问题描述】:
我想避免在我的 C++ 代码中使用 sprintf,因此我只能使用 C++ 中的 std 字符串,但我还没有找到替换它的方法。我目前使用 sprintf 来格式化日期和时间,如下所示:
char myDate[DATE_LENGTH]{};
sprintf(myDate, "%4d-%02d-%02d %02d:%02d:%02d", year, month, day,
hour, minute, second);
通过这种方式,我将获得每个整数的固定长度,如果需要,前导零。
我已经搜索了如何用 stringstream 替换它,发现了这个:
std::ostringstream ss;
ss << std::setw(5) << std::setfill('0') << 12 << "\n";
但这只会格式化其中一个整数。我需要为每个 date 和 tiem 组件执行此操作,然后将它们全部附加在一起。所以要替换一行 C 风格的代码,我需要更多的新代码。
没有比这更好的方法了吗?
【问题讨论】:
标签: c++ string stringstream