Я погорячился, это явно можно сделать. После цикла нужно переоткрыть stdin на текущий терминал. Поищите информацию как узнать устройство текущего терминала в С++. Из консоли (командой w) например я вижу что мой текущий эмулятор терминала это /dev/pts/3, его в данном случаи и следовало бы открыть.
Глянул исходники less. Оказывается всё просто, текущему терминалу соответствует /dev/tty . Соответственно переоткрываете после цикла cin на /dev/tty и будет всё нормально.