Integer zu char
-
Hallo,
ich versuche mich gerade an einer Abspeichern-Funktion.
Dazu muss ich mein integer-array in eine Datei schreiben.Mein Problem wie kriege ich aus einem integer, einen char-wert, der dann mit einem Buchstaben (also ein byte speicherplatz) abgespeichert werden kann?
Die Integer werden nicht größer als 255, von daher sollte das ganze kein Problem sein. Aber ich kann ja nicht itoa() verwenden, da er sonst ja zum Beispil für die 50 einfach 50 in die Datei speichert...
Ich brauch das ganze dann als char* um es weitergeben zu können.
int blocknr = *(level[i]+j); // hier muss dann halt die konvertierung von blocknr in char* xx erfolgen... fputs(xx,dateistream);
MfG Rodney
-
#include <sstream> ... std::ostringstream oss; int blocknr = *(level[i]+j); oss<<blocknr; fputs(oss.str().c_str(),dateistream);
-
ds schrieb:
#include <sstream> ... std::ostringstream oss; int blocknr = *(level[i]+j); oss<<blocknr; fputs(oss.str().c_str(),dateistream);
das gleiche Ergebnis wie vorher...
In die Datei wird 50 geschrieben wenn ich es aufrufe und nicht der Ascii Code Nummer 50 (das ist 2)
-
int blocknr = *(level[i]+j); // hier muss dann halt die konvertierung von blocknr in char* xx erfolgen... char cNumber = blocknr; // in Datei schreiben fprintf(dateistream, "%c", cNumber);
-
Ist level vom typ int * oder int ** ?
Wenn sich die werte zwischen 0 und 255 bewegen,
kannst du theoretisch das ganze sofort casten,
static_cast<char>(int), oder du benutzt direkt
char statt int, wenn es nur der Wertebereich ist.Devil
-
die Lösung mit dem fprintf gefällt mir schon ganz gut, so funktioniert es ja auch...
Es ist ein int** zeiger, aber wie soll man da direkt den typ ändern, ist doch ein zeiger?
-
Dereferenzieren?