Datei in Log.txt schreiben

pepsi_gx

Erfahrenes Mitglied
Hallo,

angenommen, für eine existierte Datei habe ich einen Zeiger pFile angelegt, durch den ich gerne den Inhalt in der Datei in meien "Log.txt" hinschreiben.

C++:
FILE* pFile;
char line[10000];//Zeichen in der Datei sind weniger als 10000
ofstream f;

f.open("Log.txt", ios::app|ios::trunc);

if( fgets( line, 10000, pFile ) == NULL)
        printf( "fgets error\n" );
else
        f << line;

fclose(pFile);
f.close();

Leider bekomme ich immer "fgets error", warum?
 
Hi.

Du vermischt C++ IOStreams und C stdio Funktionen. Das ist kein guter Stil. Entscheide dich für eine Variante. In C++ sind die IOStreams aber vorzuziehen.

Und du hast vor allem die Datei pFile nicht geöffnet und pFile zeigt irgendwo ins Nirvana.

Gruß
 
Es würde auch kritisch wenn du pFile geöffnet hättest, wegen 2 gleichzeitigen zugriffen.
Du kannst doch nicht einen fstream öffnen, und dann über nen File-Object darauf zugreifen.
Du musst schon über den geöffneten stream gehen
Zum zeilenweisen auslesen würde ich std::getline empfehlen.
 
Es würde auch kritisch wenn du pFile geöffnet hättest, wegen 2 gleichzeitigen zugriffen.
Du kannst doch nicht einen fstream öffnen, und dann über nen File-Object darauf zugreifen.
Er / sie wird wohl kaum die gleiche Datei an sich selbst anhängen wollen... :suspekt: (zumal die Datei auch noch mit ios::trunc geöffnet wird)

\edit: wobei ios::app und ios::trunc schliessen sich eigentlich aus. ios::app | ios::out wäre in Ordnung.

Gruß
 
Zuletzt bearbeitet:
Zurück