Wypełnienie zerami po lewej stronie

Wypełnienie zerami po lewej stronie
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
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 6:0:7, a chciałbym by wyświetlał na 06:00:07

Jak to zrobić ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

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

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

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

T1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 97
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.