2014-10-28 1 views
-3

Должен ли я сделать это 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; 
} 
+2

'setw (2) и' setfill ('0') '? Может помочь больше пример кода. – Niall

+2

Немного непонятно, о чем вы спрашиваете. Откуда взялась строка «23: 7: 42»? Может быть, вы должны показать нам свой код. – user763305

+0

im получить время от пользователя как INT часы минуты и т. Д. – TheNsn666

ответ

2

вы можете использовать setfill() и setw() функции для отображения данных согласно вашему требованию в Предложил Найл также.

ie. вы можете использовать следующий способ отображения времени.

void displayTime() { 
    cout << setfill ('0') << setw (2)<< hours << ":" << setw (2)<< minutes << ":" << setw (2)<< seconds << endl ; 
} 

, например зрения: http://codepad.org/NNL930Im

+0

Спасибо, что отлично работает! – TheNsn666

+0

Я не думаю, что вам нужно использовать 'setfill ('0')' перед каждым целым выходом. Просто один раз в начале должен быть достаточно. См. [Http://codepad.org/FqHrTOxm](http://codepad.org/FqHrTOxm). –

Смежные вопросы