>>308のgetval()のなかのif (..) return EOF;が4つある。その順番を変更すればよい。