I'm trying a slightly diff approach now but keep getting an error early on. Help appreciated again
Code:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
struct customer
{
int accno;
char name[25];
char address[50];
};
typedef struct customer C;
void loaddata(C * cArray);
void readperson( C * cArray);
void printperson( C * cArray);
#define CUSTOMERS "customer.txt"
#define LINE_LENGTH 80 //Maximum buffer size for reading in file.
int main(void)
{
C * cArray;
int numPersons=0;
cArray = ( C * ) malloc( 1 * sizeof( C ) );
loaddata(cArray);
readperson(cArray);
printperson(cArray);
printf("\n\nWorking\n\n");
}
void readperson( C * cArray)
{
char ch;
printf("Enter name:\n");
gets( (cArray )->name);
printf("Enter address:\n");
gets( (cArray )->address);
printf("\nPress any key to continue...\n");
ch = getchar();
}
void printperson( C * cArray)
{
FILE * customerfile = fopen(CUSTOMERS, "a");
if (customerfile==NULL)
exit(errno);
printf("Name\t\tAge");
printf("\n%s", (cArray)->name);
printf("\t\t%s", (cArray)->address);
fprintf(customerfile,"%s,%s\n", cArray[0].name, cArray[0].address);
fclose(customerfile);
}
void loaddata(C * cArray)
{
FILE * customerfile = fopen(CUSTOMERS, "r");
char tmpline[LINE_LENGTH];
int linecount=0; //Used as counter for number of lines
int k = 0;
if (customerfile==NULL)
exit(errno);
linecount = 0;
while (fgets(tmpline,LINE_LENGTH,customerfile) != NULL)
linecount++;
*cArray = malloc(linecount * sizeof(C));
if (cArray==NULL)
exit(errno);
rewind(customerfile);
printf ("Data loaded\n");
}