Wypełnienie zerami po lewej stronie

0

Witam. Mam oto taki kod, który zmienia liczbę zmiennoprzecinkową na godzinę:

void godzina(double liczba)
{
    int h = floor(liczba);
    double x = liczba - (double)((int)liczba);
    x = x*60;
    int m = floor(x);
    double y = x - (double)((int)x);
    y = y*60;
    int s = floor(y);
    cout<<h<<":"<<m<<":"<<s; // !błąd!
}

Wszystko pięknie, póki np. liczbę 6.0021 wyświetli jako 67, a chciałbym by wyświetlał na 0607

Jak to zrobić ?

0

<iomanip> + setfill() + setw() =

cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<m<<":"<<setw(2)<<s;

ale w tym wypadku wygodniej byłoby chyba użyć printf ;)

0

Nom printf wygląda schludniej
printf("%02d:%02d:%02d", h, m, s);
Ale po to w C++ jest iostream, żeby nie używać starego cstdio.

1 użytkowników online, w tym zalogowanych: 0, gości: 1