如何使用c ++为我的时间程序显示两位数的分钟数?

时间:2013-09-23 12:47:46

标签: c++

以下是我在c ++中的程序。请帮忙。感谢。

void Time::showTime()
{
    cout <<  "Your time in 24 hours military standard is " << hour << ":" << minute << endl;  
}

2 个答案:

答案 0 :(得分:3)

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

请注意:

  1. 您通常不需要插入endl。只需插入\n代替 - endl也可以刷新流,这通常是不需要的。
  2. 要使用setwsetfill,您需要#include <iomanip>

答案 1 :(得分:1)

这是strftime设计的任务。它消除了setfillsetw等的相当多的工作:

#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操纵器在相当多的流行实现中仍然缺失。