>>341
fgetc()の戻り値はcharで表せないEOFも返す必要から、intになっている。
従って、cはintであることが望ましい。
#つーか、charで受けるのは間違い。

それと、最初のfseek()は1バイト戻せと既に指摘されているのだがそっちは無視か?