Hallo,
Ich möchte jede Zeile der Datei list in ein Array schreiben. Doch irgendwie klappt das nicht.
Beispiel:
1. Zeile der Datei: a
2. Zeile der Datei: b
Innerhalb der while Schleife wird url mit line initialisiert. Printf gibt direkt nach der Initialisierung die Werte für url aus:
url[0] = a
url[1] = b
Allerdings benötige ich diese Werte nochmals außerhalb der Schleife und dann sind url[0] und url[1] gleich b:
url[0] = b
url[1] = b
Egal wie viel Zeilen die Datei hat am Ende hat. Der url Array nur die Werte der letzten Zeile.
Ich hoffe ihr könnt mir helfen.
MfG
Ich möchte jede Zeile der Datei list in ein Array schreiben. Doch irgendwie klappt das nicht.
Beispiel:
1. Zeile der Datei: a
2. Zeile der Datei: b
Innerhalb der while Schleife wird url mit line initialisiert. Printf gibt direkt nach der Initialisierung die Werte für url aus:
url[0] = a
url[1] = b
Allerdings benötige ich diese Werte nochmals außerhalb der Schleife und dann sind url[0] und url[1] gleich b:
url[0] = b
url[1] = b
Egal wie viel Zeilen die Datei hat am Ende hat. Der url Array nur die Werte der letzten Zeile.
Ich hoffe ihr könnt mir helfen.
Code:
#include<stdio.h>
#include<stdlib.h>
int main(void) {
size_t *len = malloc(0);
char *line = (char *) malloc(sizeof(char));
line = NULL;
FILE *fp_url_list;
char **url = (char **) malloc(1000);
short i = 0, line_length;
fp_url_list = fopen("list", "r");
while((line_length = getline(&line, len, fp_url_list)) > 0) {
if(line[line_length - 1] == '\r' || line[line_length - 1] == '\n') {
line[line_length - 1] = '\0';
}
url[i] = line;
printf("url[%d] = %s\n", i, url[i]); // url[0] = a, url[1] = b
i++;
}
printf("\nurl[%d] = %s\n", 0, url[0]); // url[0] = b ?
printf("url[%d] = %s\n", 1, url[1]); // url[1] = b ?
free(len);
free(line);
fclose(fp_url_list);
return 0;
}
MfG
Zuletzt bearbeitet: