Nella condizione del while dovresti mettere sia quella sia la condizione della fine del file. Altrimenti se le righe sono finite e all'ultima riga c'è stato un cambiamento allora gira a vuoto andando in loop perché la variabile non si modificherà mai in NO di nuovo.