Pointer Problem
-
Alle Elemente in meinem Arry werden überschrieben.
f.open("testlist", ios::in); char *arr[4]; for(i=0; i < 4; i++) { f.getline(cstring,sizeof(cstring)); arr[i] = cstring; cout << "arr[i] = " << arr[i] << endl; } f.close(); arr[1] = "ich wurde ueberschrieben"; for(i=0; i<4; i++) { cout << "arr[i] = " << arr[i] << endl; }Ausgabe: arr[i] = zeile4 arr[i] = ich wurde ueberschrieben arr[i] = zeile4 arr[i] = zeile4Was kann ich tun damit arr[0] zeile1 bleibt und nicht zu zeile4 wird??
Besten Dank fürs Helfen!
-
Ich habe im anderen Thread etwas gepostet. Ich denke du solltest zuerst das dort anschauen..
-
Danke, zum Auslesen ist deine Lösung ziemlich schlank und gut.
Aber ich möchte eine bestimmte Zeile in der Datei verändern.
Deshalb habe ich zuerst alle Zeilen in ein Array geschrieben.
Danach möchte ich alle Zeilen aus dem Arry wieder in das File schreiben.
-
Das kannst du mit meiner Lösung ja auch..
lines[1] = "nichts mehr"; // 2 Line wird auf nichts mehr gesetztUnd dann kannst du alles zurückschreiben:
std::ofstream out ( "test.txt" ); for (unsigned int i = 0; i < lines.size (); ++i ) out << lines[ i ] << "\n";
-
funktioniert. Ich dank dir
