Ich versuche, den Inhalt einer Datei myfile.txt an das Ende einer zweiten Datei myfile2.txt in c anzuhängen. Ich kann den Inhalt kopieren, aber ich finde keine Möglichkeit zum Anhängen. Hier ist mein Code:
FILE *pFile;
FILE *pFile2;
char buffer[256];
pFile=fopen("myfile.txt", "r");
pFile2=fopen("myfile2.txt", r+);
if(pFile==NULL) {
perror("Error opening file.");
}
else {
while(!feof(pFile)) {
if(fgets(buffer, 100, pFile) != NULL) {
fseek(pFile2, -100, SEEK_END);
fprintf(pFile2, buffer);
}
}
fclose(pFile);
fclose(pFile2);
Ich glaube nicht, dass ich fseek richtig verwende, aber ich versuche, fseek aufzurufen, um den Zeiger an das Ende der Datei zu setzen, und dann an der Stelle dieses Zeigers zu schreiben, anstatt am Anfang der Datei Datei. Ist das der richtige Ansatz?
(Zusätzlich zu den Antworten unten) Ihre
fseek
Idee sollte funktionieren, aber da verwenden SieSEEK_END
der ‘zeiger’ steht schon ganz am ende– und dann Sie gehen 100 Zeichen “zurück”. Verwenden0
für den Offset und es sollte funktionieren. (Minor: Sie überprüfen, ob Ihre Lesedatei geöffnet werden kann, aber nicht Ihre Schreibdatei. Überprüfen Sie beide.)– Jongware
17. Oktober 2013 um 14:27 Uhr
warum while( !feof( file ) ) niemals korrekt ist
– Benutzer3629249
20. Mai 2019 um 1:50 Uhr
Ein Tippfehler in Zeile 12, die geschweifte Klammer ist nicht geschlossen
– Haschisch
6. Juli 2020 um 2:15 Uhr