S
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