Ich versuche eine Funktion zu schreiben, die bei bestimmten Textdateien bestimmte Zeilen zurückgibt. Aber das Problem ist, einige von ihnen sind nicht gedruckt.Mit fgets und mit printf werden nur einige Zeilen gedruckt
Ich benutze fgets (var, 1500, (Datei *) fp), um jede Zeile aus einer Datei zu bekommen, und dann drucke ich es mit printf.
Der Inhalt der Dateien ist wie folgt:
zu: Mark
Von: Bob
ID: 0
Sun Feb 5 13:21:38 2017
Betreff: Fußball
Text: Am nächsten Samstagmorgen
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void listmails(){
char To[300];
char From[300];
char Date[1500];
char Subject[300];
char ID[300];
char Text[300];
char llegible[500];
int countkong = 0;
FILE *fp;
while (countkong != -1){
sprintf(llegible, "%d_EDA1_email.txt", countkong); // files name are of the type 0_EDA1_email.txt, 1_EDA1_email.txt...
fp = fopen(llegible, "r");
countkong ++;
if(fp!=NULL){
fgets(To, 300, (FILE*)fp); // I don't want to do nothing wit this line, only to jump to the next line of the file
fgets(From, 300, (FILE*)fp);
printf("%s\n", From);
fgets(ID, 300, (FILE*)fp);
printf("%s\n", ID);
fgets(Date, 1500, (FILE*)fp);
fgets(Subject, 300, (FILE*)fp);
printf("%s\n", Subject);
}
}
}
int main()
{
listmails();
return 0;
}
Bitte fügen Sie ein komplettes und kompilierbares Code-Segment ein und formatieren Sie es zur besseren Lesbarkeit. Für den Anfang müssen Sie nicht 'fp' in den Argumentlisten tippen. 'fgets (From, 300, fp);' funktioniert einwandfrei, solange 'fp' nach dem Aufruf von' fopen(); 'existiert (was Sie nicht verifiziert haben). Und schließlich sollte der Link zu Ihren Ergebnissen durch eine einfache Textbeschreibung unter Ihrem Code-Segment ersetzt werden. – ryyker
Bitte geben Sie die Textausgabe in Ihre Frage als Text ein (Code - einrücken). Verknüpfen Sie keine Bilder. –