Cin как определить конец потока?
если в потоке только пробельные символы cin >> n их просто проигнорирует, и если дойдет до конца потока, то cin >> n будет интерпретировано как false, собственно, выход и так случится. Мне кажется, что вы не всю проблему рассказали...
Можно поймать конец строки:string n;
do
{ 
     cin >> n; 
    cout << n;
}while(cin.peek() != '\n'))
Но не конец консольного потока. С файловым потоком дела обстоят иначе, там есть метод eof().