Ich will aus einer Datei 2 Zeilen in eine Zieldatei schreiben.
Dabei handelt es sich um die 33. Zeile und die 18. Zeile der Quelldatei.
Die 33. Zeile der Quelldatei soll als erstes in die Zieldatei geschrieben werden, danach die 18. Zeile.
Das lesen der Zeilen funktioniert auch, allerdings wird nur die 33. Zeile in die Queldatei geschrieben, die 18. Zeile dann nichtmehr.
#include<iostream>#include<stdio.h>usingnamespace std;char tempDate[255];char date[255];char tempSubject[255];char subject[255];char*getDate(FILE*file,int anzahl){if(anzahl ==33){int i;for(i =0; i < anzahl-1; i++)if(fgets(tempDate,255, file)== NULL)/* Bis zur n-ten Zeile lesen */return NULL;if(fgets(date,255,file)== NULL)return NULL;return date;}elseif(anzahl ==18){int i;for(i =0; i < anzahl-1; i++)if(fgets(tempSubject,255, file)== NULL)/* Bis zur n-ten Zeile lesen */return NULL;if(fgets(subject,255,file)== NULL)return NULL;return subject;}}int main(){FILE*email;FILE*ziel;unsignedint line;char*lineDate;char*lineSubject;if((email= fopen("email.txt","rt"))== NULL){
printf("Fehler beim Oeffnen der Datei\n");}else{
ziel = fopen("zieldatei.txt","w");
lineDate = getDate(email,33);
fputs(lineDate, ziel);
lineSubject = getDate(email,18);
fputs(lineSubject, ziel);}}
Meine Vermutung ist, dass die Zeilenposition dann in der 33. Zeile ist und ich somit nicht auf die 18. Zeile der Quelldatei zugreifen kann.
Ich hab es mal mit der Methode "fseek(email, 0, SEEK_SET) probiert, hat aber nicht funktioniert. Vielleicht hab ich die Methode auch nur falsch implementiert.
Und ja, der Code mag erstmal schlecht sein, bin noch anfänger.
Frage
wisdomsoz
Hi,
Ich will aus einer Datei 2 Zeilen in eine Zieldatei schreiben.
Dabei handelt es sich um die 33. Zeile und die 18. Zeile der Quelldatei.
Die 33. Zeile der Quelldatei soll als erstes in die Zieldatei geschrieben werden, danach die 18. Zeile.
Das lesen der Zeilen funktioniert auch, allerdings wird nur die 33. Zeile in die Queldatei geschrieben, die 18. Zeile dann nichtmehr.
Meine Vermutung ist, dass die Zeilenposition dann in der 33. Zeile ist und ich somit nicht auf die 18. Zeile der Quelldatei zugreifen kann.
Ich hab es mal mit der Methode "fseek(email, 0, SEEK_SET) probiert, hat aber nicht funktioniert. Vielleicht hab ich die Methode auch nur falsch implementiert.
Und ja, der Code mag erstmal schlecht sein, bin noch anfänger.
Hoffe mir kann jemand helfen
3 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.