Убедитесь, что вы получаете вводимый символ за символом. Затем, когда вам нужно что-то вывести, начните с перемещения курсора на начало текущей строки с возвратом каретки '\ r'
Затем убедитесь, что ваш вывод перезаписывает текущий ввод, заполняя его пробелами, если это необходимо.
Наконец, напечатайте перевод строки, чтобы начать новую строку и переписать ваш текущий ввод
std::cout << "\r" << output << padding << "\n" << currentinput;