void* lesen und schreiben
-
Also ich wollte eigentlich
eine klasse machen die unbestimmte structs schreiben kann.... dazu wollte ich den dateityp void* benutzen
dabei gabs zwei problem...
1.) cannot convert `test' from type `mystruct' to type `void*'zweitens, ich habe einfach ein char* getestet
char* test = "hallo"; void* Data = (void*) test; cout << (char*) Data << endl; std::ofstream OutFile( datei.c_str(), std::ios::out | std::ios::binary | std::ios::app ); if ( !OutFile ) { return -1; } else { if ( !OutFile.write( (char*)Data, sizeof(Data)) ) { return -1; } } OutFile.close();wenn ich die datei jetzt mit dem editor öffne steht nur "hall" drin, und beim auslesen über (void*) erhalte ich auch nur "hall"

//edit erstes problem selber gelöst,,,
Pointer auf struct verwendet
*das ist am schönsten wenn mans selber weiß*
-
Der Code hat mal absolut nix mit ANSI C zu tun. Das ist ne C++ Frage..
Edit: Noch besser, wenn selbst gelöst

-
ein problem bleibt, ich kann nicht korrekt schreiben weil ich nicht an die size von dem void objekt komme
sizeof(Data) liefert immer die des Pointers (4)
gibts dafür ne lösung?*sorry wenns im falschen bereich ist. Kanns dann bitte jemand verschieben?*
Danke so far
-
Tut mir leid, aber ich kann einfach keinen Sinn darin entdecken, nur noch per void Zeiger auf irgendwelche Daten zu verweisen. Mit sizeof( ) die Größe des referenzierten Typs heranzukommen ist nicht möglich, da sizeof() zur Compiletime ausgewertet wird und zB void *p irgendwohin zeigen kann.
Greetz, Swordfish
-
mein "Sinn" ist eine klasse zu schreiben die beliebige structs in eine datei schreibt und wieder lesen kann, ohne diese zu kennen
-
download123 schrieb:
mein "Sinn" ist eine klasse zu schreiben die beliebige structs in eine datei schreibt und wieder lesen kann, ohne diese zu kennen
Braucht er ja auch nicht zu kennen. Egal was fürnen Struct, einfach mit read() and write() die Structs gecastet in binär geöffnete Datein schreiben bzw lesen.
-
Freak_Coder schrieb:
download123 schrieb:
mein "Sinn" ist eine klasse zu schreiben die beliebige structs in eine datei schreibt und wieder lesen kann, ohne diese zu kennen
Braucht er ja auch nicht zu kennen. Egal was fürnen Struct, einfach mit read() and write() die Structs gecastet in binär geöffnete Datein schreiben bzw lesen.
Ja nur was übergebe ich der klasse, bzw. was bekomme ich zurück???
ich kann ja nicht ein undeklariertes struct übergeben
-
Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
download123 schrieb:
Ja nur was übergebe ich der klasse
Stichwort: Template-Methode. Dann kann die Klasse alle möglichen Structs übernehmen.
download123 schrieb:
bzw. was bekomme ich zurück???
Das struct das du gerade gefüllt hast ...