Ваш точный код (ошибки и все) работает так, как вы ожидаете, на ideone .
Как вы прекращаете ввод? Чтобы отправить сигнал EOF в вашу программу из консоли типа, в начале строки, Ctrl D в Linux или Ctrl Z в Windows.
Также попробуйте запустить с перенаправленным вводом. Что-то вроде
yourprog < data.txt
или
echo one two three four | yourprog