どう分りにくいわけ?
条件の中の副作用というのがダメなら
if (fgets(...) != NULL)
もダメだろ?

というか、そもそもfopen自体が副作用そのものだよな?