In allegro Zahlen schreiben
-
Hey Leute,
ich versuche mich gerade dabei ein kleines Strategie Spiel zuschreiben,
und mache dies mit Allegro.
Also zum Problem: ich versuche mittextprintf_ex()
zu schreiben (weil ich so auch meine Texte schreibe) allerdings sind meine Zahlen wie z.B. aktuelles Geld etc. in Integern gespeichert.
Daher die Frage hat wer ne Idee wie ich entweder Int in const char*
umwandle // oder hat evtl jemand vielleicht eine ganz andere Funktion mit der man Zahlen schreiben kann?mfg friedrich
Edit:
so ich hab jetzt versucht mir selbst eine Funktion zu schreiben um 4 stellige Zahlen umzuwandeln (ja ich weis sehr unsauber aber bin halt Anfänger^^):
char* itc(int zahl) { char ergebnis[4]; char* pergebnis; pergebnis = &ergebnis[0]; int integer[4]; double zwischen; zwischen = zahl/1000; integer[0] = zwischen; zwischen = zahl - integer[0] * 1000; integer[1] = zwischen; zwischen = zahl - integer[0] * 1000- integer[0] * 100; integer[2] = zwischen; zwischen = zahl - integer[0] * 1000- integer[0] * 100- integer[0] * 10; integer[3] = zwischen; for (int i = 0; i<= 3 ; i++) { switch (integer[i]) { case 0: ergebnis[i] = '0'; break; case 1: ergebnis[i] = '1'; break; case 2: ergebnis[i] = '2'; break; case 3: ergebnis[i] = '3'; break; case 4: ergebnis[i] = '4'; break; case 5: ergebnis[i] = '5'; break; case 6: ergebnis[i] = '6'; break; case 7: ergebnis[i] = '7'; break; case 8: ergebnis[i] = '8'; break; case 9: ergebnis[i] = '9'; break; } } return pergebnis; }
leider kommt dabei aber nur die Ausgabe "^" bei raus?
Sieht da jemand den Fehler drin?
-
Zum eigentlichen Problem:
du kannst doch
textprintf_ex
einen Formatstring (wie beiprintf
aus stdio.h) übergeben und anschließend noch die Parameter dranhängen:textprintf_ex(..., "Geld: %d", mein_geld_als_integer);
Bei deinem Code gibt es viele Dinge, die nicht passen. Zum Beispiel:
1. Du hängst kein terminierendes NUL an den String.
2. Dein Array liegt auf dem Stack. Nach Beendigung der Funktion wird der Stack "aufgeräumt", d.h. dein Rückgabewert zeigt auf eine nicht mehr gültige Speicheradresse.
3. ???
4. Profit.
-
ok danke dir
wie gesagt bin halt leider noch AnfängerEdit : Yeah klappt direkt auf Anhieb
daher Nocheinmal ein extra danke