probleme mit array
-
Ich habe ein Prblem mit einem array das ich in eine datei schreiben will, wenn ich die werte in der for schleife in das array einlese und wieder auslese funktioniert alles, jedoch wenn ich das array in eine binär datei schreibe, schreibt er mir nur einen wert in jedes array in die datei. ich habe probiert das array über einen pointer einer anderen methode zu übergeben, dann gibt er mir auch immer nur die selbe zahl aus. hier wäre der code, das ist für mich überhaupt nicht logisch, wenn er die werte hineinschreibt, jedoch beim ausgeben immer den gleichen zurückgibt.
void CTxtFile::rTFileWBin( char *fName, int floats) { int begin = 0, end = 0, loop = 0; string buffer; double value; float *values = new float[floats]; elements = chInFile(fName); //hier werde nur die werte aus einer rFile(fName); //textdatei ausgelesen und in float werte for (int i=0; i<elements; i++) { //umgewandelt. i = text.find_first_of("\n", i); end = i; buffer.replace(0, end - begin, text, begin, end - begin); value = atof(buffer.c_str()); values[loop] = value; loop++; begin = end+1; } for (i=0; i<loop; i++) { //hier ist die ausgabe noch korrekt cout << values[i] << "\t"; } dat_out = new ofstream; //hier werden dann die werte falsch geschrieben char dest[30] = ""; //bei übergabe des arrays über einen pointer, strcpy(dest, fName); //steht in jedem feld der selbe wert. strcat(dest, ".bin"); dat_out->open(dest, ios::out); if (!dat_out) { cerr << "Datei konnte nicht geoeffnet werden!\n"; } else { dat_out->write((char *)values, sizeof(float)*loop); } dat_out->close(); delete dat_out; }
-
wieß das keiner?
-
Datum beachten!