Looks like you've combined syntax for if ... else statements and switch statements. If you mean to use if... else, you can remove the breaks and remove the case 3 and default. ("invalid entry" can be a final else statement)
If you're going to have multiple statements running as part of a condition like if.. else (or for loop, etc), you need to enclose them in {}, otherwise only the first statement will be executed due to the condition.
Line 83: This if statement terminates with the read() statement. If you want to include multiple statements in the then part of the statement, you need to use {}.
1 2 3 4 5 6 7 8
if (choice == 1)
{
read();
break; // This break is going to terminate your while loop
}
elseif (choice == 2)
write();
break; // Is this unconditional or part of choice 2?
It looks like you had a switch statement that you removed. Lines 88 and 92 are only valid in a switch statement. The break statements at 85 and 88 are going to terminate your loop, where they would have terminated a case clause as part of a switch statement.
The keywords "case" and "default" are used with a "switch", which normally goes with the "break". So you do not have to bring the case and default parts, and the break is not necessary, since the if statement onle reads one line after it, if it is met.
Move the prototypes at line 46 and line 78 to before the main function. The prototypes give the compiler basic information about the function to be defined later so the compiler recognizes the function name when you call it in main.