fscanf reads a line from a file up to, but not including, the newline, and applies the format string to it (which works just like the one for printf). Meaning there's no need for checking for a newline or reading character by character (fgetc is better suited for that anyways)
Also, I don't think your segfault problem is really related to your menu. Try stepping though with a debugger (gdb, ddd, ...)
And I hate to be the one who has to tell you, but homework questions are forbidden by the
rules, and you had to accept them when you registered your account.
P.S.: Asking for help 2 days before it's due might be a bit short sighted...