When I run my program I get this...
where am I going wrong?
"lab7.c", line 4: warning: invalid white space character in directive
"lab7.c", line 38: warning: implicit function declaration: strcpy
"lab7.c", line 82: warning: newline not last character in file
luna:~>a.out
Segmentation fault (core dumped)
Code:
// the purpose of this lab is to read data from a file, capitalize the first letter of all the names
// in the file and rewrite the file
// includes
#include <stdio.h>
struct employee
{
char firstname[40];
char lastname[40];
int id;
};
typedef struct employee Employee;
Employee e[3];
void PrintEmployeeRecord();
void SaveEmployeeRecord();
//void Capitalize(const Employee e[]);
int main ()
{
Employee e[3];
FILE *file;
file = fopen("employee.dat", "r");// open file
int i = 0;
int c = 0;
int tID = 0;
char tFName[20];
char tLName[20];
do
{ c = fscanf(file,"%d %s %s" , &tID,tFName,tLName);
if (c == 3) // all three matched the format
{
e[i].id = tID;
strcpy(e[i].firstname, tFName);
strcpy(e[i].lastname,tLName);
i++ ;
}
} while ( c > EOF ); // end of file
fclose(file); //close file
PrintEmployeeRecord();
//Capitalize(e);
PrintEmployeeRecord();
SaveEmployeeRecord(e);
}
// end of main
// the function saves the employee data to a file
// the input is an array of 3 and the output is a file with the employee data
void SaveEmployeeRecord(const Employee e[])
{
int i;
FILE *file;
file = fopen("employee.dat", "w"); // open the file
fprintf(file, "ID FIRSTNAME LASTNAME\n"); // header
for (i=0; i<3; i++)
{
fprintf(file, "%d %s %s\n", e[i].id, e[i].firstname, e[i].lastname); // print the data
}
fclose(file); // close the file
}
//purpose: Print Employee data
//input: array of 3 employee data
//output: 3 employee data printed to screen
void PrintEmployeeRecord()
{
int i;
for (i=0; i<3; i++);
{
printf("%d %s %s \n", e[i].id, e[i].firstname, e[i].lastname);
}
}