Code:
FILE *ofp = fopen("roster.txt", "w");
That is going to start with a new file every time (in effect) because it truncates the file when you open it to w mode.
Code:
fprintf(ofp, "%s\n", &temp_employee);
fprintf(ofp, "%s", &new_employee);
Neither of those two & should be there. You are also apparently trying to write the entire structure, instead of writing both names one at a time. You need either fwrite or something like new_employee.fname and new_employee.lname. Also note that you are writing new_ once and temp_ once. So if that was .fname and .lname, you'd be writing the .fname of one and the .lname of the other.
Quzah.