I am trying to read a file using pointers and this is all i get !

54123132132
21
2152
22
2
2
5212
2






#include <stdio.h>
#include <stdlib.h>

void traverse(void);

/* Structure for printing the id.txt file */
struct id_card {
int ID;
struct id_card *nextptr;
};

typedef struct id_card node;

void traverse(void) {
FILE *fp;
node *currptr = NULL, *headptr = NULL, *prevptr = NULL;
int NUM, i;

fp = fopen( "id.txt","r" );
if ( fp == NULL ) {
printf( "Unabale to open id.txt file \n" );
exit( 1 );
}

for(i = 1; i<=8; i++) {
NUM = getc( fp );
NUM = NUM-48;
currptr = malloc( sizeof(node) );

currptr->ID = NUM;
currptr->nextptr = NULL;
printf( "%d",NUM );

if ( headptr == NULL ) {
/* List is empty - start a new list */
headptr = currptr;
prevptr = currptr;
} else {
/* append to existing list */
prevptr->nextptr = currptr;
prevptr = currptr;
}
}

currptr = headptr;
while ( currptr != NULL ) {
printf( "\n" );
printf( "%d", currptr->ID );
currptr=currptr->nextptr;
}

fclose( fp );
}


int main( ) {
traverse();
return 0;
}