Два цикла while (cin >> foo) подряд, как прервать один, но передать на исполнение другой?
К примеру, код:
while (cin >> foo) cout << " " << foo\n;
while (cin >> bar) cout << " " << bar\n;
Сначала исполняется первый цикл, он исполняется до тех пор, пока в поток ввода не попадет символ конца строки/файла (Ctrl+D в Unix'ax). Но вот беда: я хочу прервать первый цикл, жму Ctrl+D, и второй цикл завершается тоже, более того, я больше не смогу вывести что-либо из потока ввода во всей программе, т.е. простой cin >> x; не сработает. Символ конца файла/строки остается в потоке до конца программы.