EOFは負の値じゃなかった?
たしか<stdio.h>の中で#define EOF -1 とかで定義されてたりするんじゃ… 
違ってたらすいません。 orz 

\0は配列とかで最後に格納されるくらいだからEOFと全然違うような希ガス。 
漏れには「文字の終わり」を意味する印象が強いぉ。