-4

下面是我的 C++ 程序。请帮忙。谢谢。

无效时间::showTime()
{
    cout << "你的24小时军标时间是" << hour << ":" << minute << endl;  
}
4

2 回答 2

3
cout << setw (2) << setfill ('0') << minute << "\n";

注意:

  1. 您通常不需要插入endl. 只需插入一个\n代替 --endl也会刷新流,这通常是不需要的。
  2. 为了使用setwsetfill您需要#include <iomanip>
于 2013-09-23T12:50:28.350 回答
1

这是为之strftime设计的任务。setfill它消除了,等的大量工作setw

#include <iostream>
#include <ctime>
#include <string>

enum conv {UTC, LOCAL};

std::string fmt(char const *fmt, time_t p=time(NULL), conv c = LOCAL) {
    char buffer[512];

    struct tm n = c == LOCAL ? *localtime(&p) : *gmtime(&p);
    strftime(buffer, sizeof(buffer), fmt, &n);
    return std::string(buffer);
}

int main() {
    std::cout << fmt("Your time in 24 hours military standard is %H:%M\n");
}

从理论上讲,C++11 已经添加<chrono>了一个put_time操纵器,可以让您更干净地进行这种检索和格式化,但在真正的编译器中的支持是......充其量是参差不齐的。大多数似乎都有检索时间的代码,但是put_time在相当多的流行实现中仍然缺少操纵器。

于 2013-09-23T13:39:58.173 回答