我想以某种格式将时间戳写入文件。
有没有办法使用修饰符创建一个新字符串(参见下面的 printf 代码)?还是有另一种方法可以在 TextStream 中使用字符串修饰符?
printf("%02d-%02d-%02d_%02d:%02d:%02d.%02d\n",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
我想以某种格式将时间戳写入文件。
有没有办法使用修饰符创建一个新字符串(参见下面的 printf 代码)?还是有另一种方法可以在 TextStream 中使用字符串修饰符?
printf("%02d-%02d-%02d_%02d:%02d:%02d.%02d\n",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
一种类型安全的替代方案,无需担心缓冲区大小,将直接在输出流上或在以下位置使用IO 操纵器std::ostringstream
:
#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
int main()
{
std::ostringstream s;
s << std::setfill('0')
<< std::setw(2) << 1 << ':' // st.wYear, etc
<< std::setw(2) << 97 << ':'
<< std::setw(2) << 4;
std::cout << s.str() << "\n";
return 0;
}
此外,先前的答案说明了int
进入 a 的方法std::string
:将 int 附加到 std::string