Я же написал - твоя программа ожидает так называемый "конец файла" (End Of File), а вовсе не три буквы "EOF". Чтобы закончить цикл, можно сравнивать символ, например, с переводом строки '\n', или же с нулевым байтом, т.е. while((grade=cin.get())!=0) (в Windows этот символ вставляется с помощью Ctrl плюс Z).
Ссылка на пост
4 сен 2012 в 20:48