【发布时间】:2016-02-24 16:54:59
【问题描述】:
以下代码以时间格式输出值,即如果是下午 1:50 和 8 秒,则将其输出为 01:50:08
cout << "time remaining: %02d::%02d::%02" << hr << mins << secs;
但我想做的是 (a) 将这些整数转换为 char/string (b),然后将相同的时间格式添加到其对应的 char/string 值中。
我已经达到(a),我只想达到(b)。
例如
char currenthour[10] = { 0 }, currentmins[10] = { 0 }, currentsecs[10] = { 0 };
itoa(hr, currenthour, 10);
itoa(mins, currentmins, 10);
itoa(secs, currentsecs, 10);
现在,如果我输出“currenthour”、“currentmins”和“currentsecs”,它将输出与 1:50:8 相同的示例时间,而不是 01:50:08。
想法?
【问题讨论】:
-
您的第一个 cout 语句有效吗?它不在这里:coliru.stacked-crooked.com/a/47f11bcdd5421c21
-
先将值转换成time_t会不会更容易?
-
我认为,使用 %02 是标准的 c/c++ 实践。我错了吗?我正在使用 CryEngine 并且该语句在那里有效,但是 CryEngine 具有不同的功能,而不是 cout。作为参考,这在 CryEngine 中有效:CryLog("剩余时间:%02d::%02d::%02", hr, min, sec);
-
我爱好老
std::printf... -
啊。不,那不一样。就像
printf。printf和cout是完全不同的野兽。
标签: c++ string datetime int itoa