Liste liée dans c (lire à partir du fichier)

Je suis très nouveau à la programmation en C, et je vais avoir quelques difficultés. Je suis en train de lire ligne par ligne dans un fichier texte, puis ajouter chaque ligne à une simple liste chaînée. J'ai essayé beaucoup de choses, mais je n'ai pas trouvé de solution. Jusqu'à présent, dans mon code, je suis en mesure de lire le fichier, mais je ne comprends pas comment faire pour enregistrer le texte ligne par ligne et l'ajouter à la liste chaînée.

C'est ce que j'ai à ce jour:

struct list {
char string;
struct list *next;
};

typedef struct list LIST;

int main(void) {

    FILE *fp;
    char tmp[100];
    LIST *current, *head;
    char c;
    int i = 0;
    current = NULL;
    head = NULL;
    fp = fopen("test.txt", "r");

    if (fp == NULL) {
        printf("Error while opening file.\n");
        exit(EXIT_FAILURE);
    }

    printf("File opened.\n");

    while(EOF != (c = fgetc(fp))) {
       printf("%c", c);
    }

    if(fclose(fp) == EOF) {
        printf("\nError while closing file!");
        exit(EXIT_FAILURE);
    }
    printf("\nFile closed.");
}

Si quelqu'un pouvait me donner quelques conseils sur ce que je dois faire pour le faire fonctionner, je serais très apprécier. Je suis habitué à Java, et en quelque sorte mon cerveau ne peut pas comprendre comment faire ces choses dans C.

  • char string; est un octet variable. Il ne peut stocker que de 8 bits de données, pas une chaîne de texte de tout type. Vous voulez probablement char *string; à la place. Peut-être vous pouvez essayer d'utiliser strdup() pour créer une copie de chaque corde comme il est lu, et affecter la valeur de retour de la string élément de chaque lien. la Lecture de ce qui pourrait aider.
InformationsquelleAutor user16655 | 2014-09-09