mit fgets lesen
-
ich möchte einen String aus einer datei auslesen. Es kommt jedoch immer ein Fehler. Hier mal der verwendete code:
strcpy(wpath, "C:\\adrbk.txt"); char add[501]; ofstream file; file.open(wpath); fgets(add, 500, file); file.close(file);
Kann mir wer was hier falsch ist?
-
Wenn du dir mal die Hilfe von fgets durchgelese hättest, dann wäre dir aufgefallen, dass fgets nicht mit C++ Streams zusammenarbeitet und als 3. Parameter eine Variable vom Type FILE* erwartet. So gehts:
#include <string> #include <iostream> #include <fstream> using namespace std; int main() { string line; ifstream in( "C:\\adrbk.txt"); if(in){ while(getline(in,line)) cout << line << endl; } cin.get(); }
-
Danke
Ich hab jetzt diesen Code verwendet um in die Datei zu schreiben:
ofstream file; file.open(wpath, ios::out); if(file.is_open()) { file<<newname.Vorname<<" "<<newname.Nachname<<"\n"; }
Aber wenn ich nochmal reinschreiben will, löscht das den alten eintrag. Weist du wie ich den nächsten Eintrag einfach in die nächste Zeile schreiben kann??
Und dann auch wieder auslesen kann?
-
meinst du wenn du die Datei nochmal öffnest? Dann schau dir mal ios::app an; Ansonsten solltest du nichts überschreiben.
btw. solltest du lieber den ctor benutzen und nicht open
-
Damit die Datei beim _nächsten_ öffnen nicht überschrieben wird: ios::app