binärdatei probleme bei klassenmethode
-
mit meinem problem bin ich weitergekommen, nun habe ich ein neues problem, wo
ich in der sackgasse bin, ich hoffe jemand kann mir helfen. Die folgende methode
funktioniert:bool CFile::wBinFile(char *fName, float value[], int elements) { ofstream dat_out; dat_out.open(fName, ios::out|ios::binary); if (!dat_out) { cerr << "Datei konnte beim Schreiben nicht geöffnet werden!\n"; return false; } else { dat_out.write((const char *) &value, sizeof(float) * elements); dat_out.close(); return true; } }
und habe ich folgenden code in main() probiert:
void main() { CFile *IOFile = new CFile; float *header; char fileName[20]; char fBuffer[20]; int values; cout << "Enter the file name: "; cin >> fileName; cout << "Number of values: "; cin >> values; header = new float[values]; for (int i=0; i<values; i++) { header[i] = i * i; cout << "value " << i << ": " << header[i] << endl; } IOFile->wBinFile(fBuffer, header, values); ifstream file_in; file_in.open(fBuffer, ios::in | ios::binary | ios::app); file_in.seekg(0, ios::end); unsigned long FileSize = streamoff(file_in.tellg()); file_in.seekg(0, ios::beg); int elements = FileSize/sizeof(float); cout << "file size: " << FileSize << "\telements: " << elements << endl; for(i=0; i<values; i++) { file_in.read((char *) &header[i], sizeof(float)); } file_in.close(); for(i=0; i<values; i++) { cout << header[i] << "\t"; } }
dieser code funktioniert, nur wenn ich den code zum lesen von binär-datein in
eine methode schreibe, wie oben geschrieben, dann kann file_in.open() die datei nicht öffnen.Komischerweise kann ich nur eine datei lesen wenn ich ios::app als argument
mitübergebe. ????Noch ein kleines problem gibt’s noch, und zwar, der code um die anzahl der
elemente zu bestimmen funktioniert auch nicht, kann es sein dass streamoff() nur
bei den methoden getc() bzw. putc() funktioniert?Ich hoffe jemand kann mir weiterhelfen,
danke
mattias
-
es hätte auch gereicht wenn du in dein alten thread gepostet hättest
dieser code funktioniert, nur wenn ich den code zum lesen von binär-datein in
eine methode schreibe, wie oben geschrieben, dann kann file_in.open() die datei nicht öffnen.wo durch unterscheiden sich die codes?
Komischerweise kann ich nur eine datei lesen wenn ich ios::app als argument
mitübergebe. ????hmm irgend was leuft da schief
Noch ein kleines problem gibt’s noch, und zwar, der code um die anzahl der
elemente zu bestimmen funktioniert auch nicht, kann es sein dass streamoff() nur
bei den methoden getc() bzw. putc() funktioniert?müsste ich auch mehr sehen