C, aus Datei in Struktur einlesen

Ich habe seit Tagen damit zu kämpfen und ich kann nicht herausfinden, warum es nicht funktioniert.

Ich versuche, Zahlen aus einer Datei mit folgenden Zahlen zu lesen:

0 2012 1 1 2000.000000
0 2012 1 1 3000.000000
1 2012 1 1 4500.000000

meine Struktur:

struct element{

        int id;
        int sign;
        int year;
        int month;
        double amount;

        struct element *next;


};

struct queue{
    struct element *head;
    struct element *tail;
    struct element *head2; 
    struct element *temp;  
    struct element *temph; 

    int size;
};

(head2, temp und temph werden in der Sortierstruktur verwendet)

und Lesen aus einer Datei:

void read_str(struct queue *queue){

    FILE *reads;

    char filename[40];
    int temp;

    printf("Type in name of the file\n");
    scanf("%s",&filename);
    reads=fopen(filename, "r");
    if (reads==NULL) {
        perror("Error");
        return 1;
    }
    else { 
        while(!feof(reads)) {
            struct element *n= (struct element*)malloc(sizeof(struct element));             
            fscanf(reads,"%d %d %d %d %lf", n->id, n->sign, n->year, n->month, n->amount);                  
            n->next=NULL;                   

            if(queue->head ==NULL) {
                queue->head=n;
            }
            else {
                queue->tail->next=n;
            }

            queue->tail=n;
            queue->size++;                  

        }           
    }
}

Ich kann das Aussehen der Daten in einer Datei ändern, indem ich die Funktion ändere, mit der sie geschrieben werden, aber ich glaube nicht, dass das das Problem ist. Meine Vermutung verwende ichmalloc auf falsche Weise.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage