データファイルの最後の改行文字を読み込んで失敗しているんだよ。
この手の処理は1文字ずつ読み込むのではなく、1行単位で読み込んで
sscanf()を使う方がいい。
その方が楽だよ。