2017-03-21 5 views
0

Meine Funktion wechselt von Sekunden zu Minuten. Das Problem ist, wenn ich eine Zahl habe, wo der Rest weniger als 10 ist, wird es nur geben, geben Sie mir Rest ohne eine 0 vor dem Rest.So konvertieren Sie Sekunden in Minuten C++

beispielsweise 368 Sekunden würde sich nur um 6: 8

360 drehen würde bis 6: 0

361-6: 1

I 368 Sekunden möchte einzuschalten 6:08

360 bis 6:00

361 bis 6.01

void toMinutesAndSeconds(int inSeconds, int &outMinutes, int &outSeconds) { 
    outMinutes = inSeconds/60; 
    outSeconds = inSeconds % 60; 
} 

EDIT: Ich bin in einer Textdatei

Vielen Dank im fortgeschrittenen ausgibt!

+0

Haben Sie Ausgang Minuten/Sekunden zu trösten? Wenn ja, wie machst du das? –

+0

Sie möchten die Nummer mit Nullen "auffüllen". Suche nach Zero-Padding. (oder Präfix) –

+0

Mögliches Duplikat von [Wie kann ich ein int mit führenden Nullen auffüllen, wenn Sie den Operator cout << benutzen?] (http://stackoverflow.com/questions/1714515/how-can-i-pad-an-int -mit-führenden-Nullen-wenn-benutze-cout-operator) – Zze

Antwort

2

Das hängt davon ab, wie Sie Ihre Werte ausgeben. Dieser Wert selbst hat keine führenden Nullen.

#include <iostream> 
#include <iomanip> 

void toMinutesAndSeconds(int inSeconds, int &outMinutes, int &outSeconds) 
{ 
    outMinutes = inSeconds/60; 
    outSeconds = inSeconds % 60; 
} 

int main() 
{ 
    int minutes = 0; 
    int seconds = 0; 
    toMinutesAndSeconds(368, minutes, seconds); 
    std::cout << std::setfill('0') << std::setw(2) << minutes << ":" 
     << std::setfill('0') << std::setw(2) << seconds; 
    return 0; 
} 

druckt

06:08 
Verwandte Themen