如何修复时间演示从23:7:42到23:07:42
问题描述:
我应该使它成为string
?或者有一个简单的方法来与int
?如何修复时间演示从23:7:42到23:07:42
class TimeFixer {
private:
int seconds=0;
int minutes=0;
int hours=0;
public:
TimeFixer() {
cout << "Enter hours,minutes,seconds: " ;
cin >> hours;
cin >> minutes;
cin >> seconds;
}
void fixTime() {
while (seconds >= 60) {
seconds -= 60;
minutes++;
}
while (minutes >= 60) {
minutes -= 60;
hours++;
}
while (hours >= 24) {
hours -= 24;
}
}
void displayTime() {
cout << hours << ":" << minutes << ":" << seconds << endl;
}
};
int main()
{
int value = 0;
cout << "Enter value: " ;
cin >> value;
TimeFixer *fix1;
fix1 = new TimeFixer[value]();
for (int i = 0 ; i < value ; i++) {
fix1[i].fixTime();
fix1[i].displayTime();
}
return 0;
}
答
您也可以使用setfill()和setw()函数来显示数据,按照Niall的建议。
即。您可以使用以下方式显示时间。
void displayTime() {
cout << setfill ('0') << setw (2)<< hours << ":" << setw (2)<< minutes << ":" << setw (2)<< seconds << endl ;
}
+0
谢谢你的工作很棒! – TheNsn666 2014-10-28 12:31:16
+0
我不认为你需要在每个整数输出之前使用'setfill('0')'。只要在开始时就足够了。参见[http://codepad.org/FqHrTOxm](http://codepad.org/FqHrTOxm)。 – 2014-10-28 13:19:42
'运输及工务局局长(2)'和'setfill( '0')'?更多的代码示例可能会有所帮助。 – Niall 2014-10-28 11:45:39
这是有点不清楚你在问什么。字符串“23:7:42”从哪里来?也许你应该向我们展示你的代码。 – user763305 2014-10-28 11:47:16
即时获得用户的时间INT小时分钟等 – TheNsn666 2014-10-28 11:57:23