# include <stdio.h>
# include <stdlib.h>
# include <string.h>
/** anagnosi listas prosopon apo arxeio **/
typedef struct Node
{
	char name[80];
	char lastname[80];
	int  age;
	struct Node *next;
}Person;


Person readPerson(char *line)
{
	
	char delimeter[2];
	char *token;
	int icount=0;
	Person p;
	
	strcpy(delimeter,",");
	token=strtok(line,delimeter);
	while(token!=NULL)
	{
		if(icount==0) strcpy(p.name,token);
		else if(icount==1) strcpy(p.lastname,token);
		else if(icount==2) p.age=atoi(token);
		token=strtok(NULL,delimeter);
		icount++;
	}
	return p;
}


void printPerson(Person p)
{
	printf("Name: %s Lastname: %s Age: %3d\n",p.name,p.lastname,p.age);
}


void addPerson(Person ** head, Person x) 
{
    Person  *new_node;
    new_node = (Person *)malloc(sizeof(Person));
    strcpy(new_node->name,x.name);
    strcpy(new_node->lastname,x.lastname);
	new_node->age=x.age;
    new_node->next = *head;
    *head = new_node;
}



void printList(Person *t)
{
	while(t!=NULL)
	{
		printf("element : ");
		printPerson(*t);
		t=t->next;
	}
}

int	removeElement(Person **head)
{
	int retval = -1;
    	Person *next_node = NULL;
    	if (*head == NULL) 
	{
        	return 0;
    	}
    	next_node = (*head)->next;
    	free(*head);
    	*head = next_node;
    	return 1;
}

int main()
{
char filename[100];
	Person pt;
	FILE *fp;
	char line[200];
	Person *head=NULL;
	printf("Doste onoma arxeiou ?\n");
	gets(filename);
	fp=fopen(filename,"r");
	if(fp==NULL)
	{
		printf("Adynamia anoigmatos %s \n",filename);
	}
	else
	{
		while(fgets(line,199,fp)!=NULL)
		{
			if(line[strlen(line)-1]=='\n') line[strlen(line)-1]='\0';
			pt=readPerson(line);
			addPerson(&head,pt);
		}
		fclose(fp);
	}
	printList(head);
	
	removeElement(&head);
	printf("Meta tin diagrafi \n");
	printList(head);
	return 0;
}
