>>549
>fscanf(fl, "\n");
そのように書いても、一行飛ばすという意味にならない。
なぜこれで一行飛ばせると思ったのか?
教科書やリファレンスにそう書いてあったか?
カンでプログラミングしないこと。

while (fgetc(fl) != '\n') ;
などとすれば次の行まで読み飛ばせる (本当は EOF もチェックした方がいいけど)