Code:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct person{
char name[100];
char address[100];
char IDnumber[20];
int age;
};
void copystructure(char structure[100],struct person *ptr);
void main(void){
FILE *fp1;
fp1=fopen("file1.txt","r");
char ch;
int i=0,j=0;
char tmp[100];
struct person *ptr=NULL;
struct person arr[100];
ptr=&arr[0];
while((ch=fgetc(fp1))!=EOF){
switch(ch){
case'\n': copystructure(tmp,ptr); ptr=&arr[j++]; break;
default: tmp[i]=ch;i=i+1;
}
}
}
void copystructure(char structure[100],struct person *ptr){
int i,k,j=0;
char tmp[100];
ptr=(struct person *)malloc(sizeof(struct person));
for(i=0;structure[i]!='\0';i++,j++){
if(structure[i]==','){
break;
}
tmp[j]=structure[i];
}
tmp[j]='\0';
j=0;
strcpy(ptr->name,tmp);
for(i=i+1;structure[i]!='\0';i++,j++){
if(structure[i]==','){
break;
}
tmp[j]=structure[i];
}
tmp[j]='\0';
j=0;
strcpy(ptr->address,tmp);
for(i=i+1;structure[i]!='\0';i++,j++){
if(structure[i]==','){
break;
}
tmp[j]=structure[i];
}
tmp[j]='\0';
j=0;
strcpy(ptr->IDnumber,tmp);
for(i=i+1;structure[i]!='\0';i++,j++){
tmp[j]=structure[i];
}
j=0;
k=structure[i-2]-'1'+1;
k=k*10+(structure[i-1]-'1'+1);
ptr->age=k;
free(ptr);
}
file1.txt is shown below
Code:
Name1,Address1,IDnumber1,1
Name2,Address2,IDnumber2,2
Name3,Address3,IDnumber3,3
Name4,Address4,IDnumber4,4
Name5,Address5,IDnumber5,5