000
20.02.2011, 10:10 Uhr
~Nickolaus
Gast
|
Guten Tag,
erstmal, es geht um diesen code:
C++: |
void Record::writeBinaryFile(ofstream &outputFile) { if (!outputFile) cerr << "Could not open Output-File file.\n"; else { char *keyChar; itoa(Record::key,keyChar,10); outputFile.write(keyChar,sizeof(int)); keyChar->~char(); outputFile.write(Record::postcode,sizeof(char)*8); outputFile.write(Record::info1,sizeof(char)*251); outputFile.write(Record::info2,sizeof(char)*251); outputFile.write(Record::info3,sizeof(char)*251); } }
|
damit schreibe ich daten in eine binary datei,... das funktioniert auch alles wunderbar, allerdings wird die binary datei fehlerhaft sobald der key größer als 9999 wird,.... ich dachte erst das würde an der sizeof(int) liegen, weil das ja eigentlich nur 4bit sind,... aber zum einen habe ich ein 64 system, int müsste somit 8bit groß sein,... und zum anderen hab ich das ganze auch schon mit long statt int versucht, was leider zum gleichen ergebnis führte.
also falls irgendjemand mir helfen kann, bzw. mir erklären kann warum das programm sich so verhält wäre ich sehr dankbar.
vielen dank schonmal für eure hilfe! |