Hallo liebe Gemeinde,
ich versuche gerade ein Programm zu entwickeln, welches eine .txt Datei zeilenweise einliest und in eine selbst erstellte struct einfügt. Aber soweit komme ich gar nicht. Ich bin schon mit dem Debugger drüber und habe gesehen, dass die Adresse des Pointers auf die .txt zeigt. Aber irgendwie funktioniert die Methode fscanf nicht.
Dies ist mein Code in der main:
Vielleicht weiß ja jemand eine Lösung zu meine Problem.
ich versuche gerade ein Programm zu entwickeln, welches eine .txt Datei zeilenweise einliest und in eine selbst erstellte struct einfügt. Aber soweit komme ich gar nicht. Ich bin schon mit dem Debugger drüber und habe gesehen, dass die Adresse des Pointers auf die .txt zeigt. Aber irgendwie funktioniert die Methode fscanf nicht.
Dies ist mein Code in der main:
Java:
int main(void) {
char* titel;
int release;
int length;
char* regisseur;
char filename[FILENAME_MAX];
char line[MAXLINE];
FILE *filepointer;
size_t p;
printf("Which File should be opend? (Needs to be in the same directory): ");
fgets(filename, FILENAME_MAX, stdin);
//Entfernt new line und setzt end of line
p = strlen(filename);
filename[p-1] = '\0';
filepointer = fopen(filename, "r");
if(filepointer == 0) {
printf("File can´t be opend!\n");
return EXIT_FAILURE;
} else {
//Zählt die Zeilen in der .txt Datei
while(fgets(line, MAXLINE, filepointer)) {
getlinenumbers = getlinenumbers+1;
}
//Erstellt i mal die movie struct. Liest nun Zeilenweise die .txt ein, bekommt die infos zu dem Film und fügt diese in die movie struct ein.
movie* input_movie[getlinenumbers];
while(fscanf(filepointer, "%[^;];%d[^;];%d[^;];%[^;]", titel, &release, &length, regisseur) != EOF) {
input_movie[i] = new_movie(titel, release, length, regisseur);
i++;
}
for(int j = 0; j<i; j++) {
printf("%s, %d, %d, %s", input_movie[j]->titel, input_movie[j]->release, input_movie[j]->length, input_movie[j]->regisseur);
}
}
return EXIT_SUCCESS;
}
Vielleicht weiß ja jemand eine Lösung zu meine Problem.
Zuletzt bearbeitet: