Изменение отображения вводимого текста в консоли C++
Ситуация: в программе содержится строчка кода, позволяющая осуществить ввод с клавиатуры (cin>>/getline() ) и, соответственно, войти в поток ввода.
Проблема: при нажатии клавиш соответствующие символы будут отображаться на экране консоли последовательно (символ за символом) и построчно (будет заполняться строка, по достижении предела ввода курсор перейдёт на следующую строку).
Задача: необходимо изменить порядок заполнения окна консоли таким образом, чтобы символы заполнялись последовательно, но не построчно, а формировали колонки текста. То есть, допустим, длина колонки 10 символов, а высота 5. При нажатии клавиш на клавиатуре 1-я строка 1-й колонки заполняется до предельной длины (10 символов), а курсор переходит на следующую строку. По достижении 5-й строки и 10-го столбца рядом начинает заполняться такая же колонка, при этом расстояние между колонками должно быть в 2 пробела.
Смысл задания: нужно создать в консоли эмуляцию многоколоночного текстового редактора. Сам текст должен храниться в файле (как раз в виде этих самых колонок фиксированной длины и высоты), однако одно из требований выполнения работы - расположение текста в файле должно совпадать с его расположением на экране.
Минимально необходимое решение: хотя бы понятийно оформить то, что нужно сделать, нап. "нужно переопределить операторы ввода и вывода" или др. вербальное описание путей решения данной задачи, чтобы я мог хотя бы адекватно искать информацию по этой теме и понимать, в каком направлении нужно двигаться, т.к. ранее с задачами подобного рода я не сталкивался и не понимаю, какими инструментами это должно решаться.
Заранее спасибо.