Zahlendarstellung

foxxx

Mitglied
Hallo ich nochmal,

hab jetzt noch eine Frage:

ich soll Sekunden in das [hh:mm:ss] Format umrechnen.

Wenn die Zahlen allerdings nur einstellig sind dann wird auch nur eine "6" und nicht eine "06" angezeigt.

Kann ich irgendwie eine zweistellige Anzahl einer int Zahl erreichen?

Hoffe das wurde nicht schon gefragt. Konnte zumindest nichts finden.

Viele Grüße
 
Intern wird eine 06, eine 006, usw immer als 1010b gespeichert.

Dein Rechner unterscheidet also nicht, wieviele Vorstellen du ihm geben willst.

Du kannst aber eine Ausgabe entsprechend formatieren:

printf("%2d", zahl); // gibt - wenn ich mich jetzt nicht täusche - die Zahl mit so vielen führenden Nullen zurück, dass die Gesamtzahl = 2 ist.

entsprechend mit cout:

cout.width(2);
cout.fill('0');
cout << zahl;
 
Hm...

ich würd das gern so ausgeben:

cout << endl << endl << "=> " << h << ":" << m << ":" << s;

Nur daß h, m und s auf jeden Fall zweistellig sind, auch wenn der Wert nur 3 ist zum Beispiel. Haut das so nicht hin wie ich mir das vorstell?
 
Mach das doch am besten, wie es shutdown beschrieben hat:

cout << endl << endl<< "=> ";

cout.width(2);
cout.fill('0');
cout << h << ":";

cout.width(2);
cout.fill('0');
cout << m << ":";

cout.width(2);
cout.fill('0');
cout << s;
 
moin


Oder einfach so:
Code:
#include <windows.h>
#include <iostream>

using namespace std;

int main()
{
	int sekunden_gesamt = 23456;
	int s = 1, m = 60, h = 3600;
	int rest, stunden, minuten, sekunden;
	
	char szZeit[12];

	stunden = sekunden_gesamt / h;
	rest = sekunden_gesamt - (stunden * h);

	minuten = rest / m;
	rest = rest - (minuten * m);

	sekunden = rest / s;

	wsprintf(szZeit, "[%02d:%02d:%02d]", stunden, minuten, sekunden);

        cout<< szZeit;

        cin.get();
	return 0;
}


mfg
umbrasaxum
 
Zuletzt bearbeitet:
Zurück