Okay so I've been doing a program which would read elements of a txt file using scanf (cmd input redirection). A new node must be created for every entry in the file and add it at the end of the list. Here's my code so far:
struct Elem{
    int Atnum;
    char Na[31];
    char Sym[4]; 
};
struct nodeTag {
    struct Elem entry; 
    struct nodeTag *pNext; // pointer to the next node
};
typedef struct nodeTag Node;
The function that would initialize it is this:
Node *
InitializeList(Node *pFirst, int n)
{
    int i;
    Node *head, *temp = 0;
   pFirst = 0;
   for (i=0; i<n; i++){
        head  = (Node *)malloc(sizeof(Node));
        scanf("%d", &head->entry.AtNum); 
        scanf("%s", head->entry.Na);
        scanf("%s", head->entry.Sym);
        if (pFirst != 0)
        {
            temp->pNext = head;
            temp = head;
        }
        else
        {
            pFirst = temp = head;
        }
        fflush(stdin); 
        temp->pNext = 0;
    }
    return pFirst;
}
and lastly, print it
void
Print( Node *pFirst )
{
    Node *temp;
    temp = pFirst;
    printf("\n status of the linked list is\n");
    while (temp != 0)
    {
        printf("%d %s %s", temp->entry.AtNum, temp->entry.Na, temp->entry.Sym);
        temp = temp -> pNext;
    }
}
Now, I can't get the program to run properly. No run-time errors though but the output seems to be garbage. I've been working for hours for this and I cant' get my head around it. Thank you for your help!
 
    