>>819
while や if の仕組みを覚えるべし。

比較演算(== > < 等)は値を返す。
式が成り立つなら 0 でない数値(1 -1 等)
式が成り立たなければ 0 を返す。

while if 等の制御文は、与えられた数値が
0 なら偽、0 以外なら真と判断する。

結果的に比較式が成り立てば真
成り立たなければ偽と判断されるワケ。

だから、while に 1 を与えれば
0 でないので真とみなされ、永久にループする。

break について。
if(feof(fpr))が成り立った時に実行される break は
最も内側のループを強制的に抜ける命令。
(本当はループ以外にも抜ける制御文があるんだけどな)