Problem mit char*
-
Hi,
ich hab folgendes Problem, beim einlesen bzw. auslesen in/aus einer Datei, mit char pointern.
Hier lese ich den Wert des char* in die Datei ein.
#include <iostream> #include <fstream> using namespace std; typedef struct STest { char* test; } sTest,*pTest; int main() { sTest pt; int len = 0; fstream file; pt.test = "Hallo"; file.open("test.dat",ios::out | ios::binary); if( file.is_open() ) { file << strlen(pt.test); file.write(pt.test,strlen(pt.test)); } file.close(); return 0; }
Aus Testzwecken hab ich nachdem ich den oberen Teil ausgeführt habe das einlesen auskommentiert( von pt.test = "Hallo"; bis file.close(); ).
Ausgelesen wir dann folgendermaßen.#include <iostream> #include <fstream> using namespace std; typedef struct STest { char* test; } sTest,*pTest; int main() { sTest pt; int len = 0; fstream file; file.open("test.dat",ios::in | ios::binary); if( file.is_open() ) { file >> len; pt.test = new char[len]; file.read(pt.test,len); cout << "Test: " << pt.test << endl; } else cout << "FEHLER!!" << endl; file.close(); system("PAUSE"); return 0; }
So, mein Problem wäre jetzt folgendes:
Bei der Ausgabe gibt mir das ganze mit
VC++ .NET 2002 folgendes aus
Hallo²²²²²`y`y`y usw. also noch zusätzliche zeichen
Borland C++ BuilderX
Hallo«C
Nur Dev-CPP (verwendet den gcc compiler) gibt
Hallo
ohne anhängsel aus.An was liegt das?
Denn das nervt mich langsam.Danke für die Hilfe
MFG
Sebastian