>>932
char c;//読み込んだ文字 → int c;//読み込んだ文字
if((fp = fopen(filename,"r")) == NULL); → if((fp = fopen(filename,"r")) == NULL)
while((c == fgetc(fp)) != EOF) → while((c = fgetc(fp)) != EOF)

一行一行何をやってるのか考えながらコーディングすれば間違いは減らせる。
あと、getsを使う癖をつけてはいけない。必ずfgetsを使うように。