Можно ли отображать редактируемый текст в оболочке через стандартный C++ IOStream?

Можно ли отображать интерактивный и редактируемый текст в консоли с помощью стандартного C++ iostream?

Другими словами, возможно ли иметь базовые возможности редактирования текста в стиле Vim, используя только стандартный C++ iostream в оболочке?

Например, предположим, что простая строка exampleText содержит текст «Пример текста». отображался в окне оболочки с использованием кода:

std::string exampleText = "Example text.";
std::string editedText;
std::cout << exampleText;

можно ли отредактировать строку, хранящуюся в exampleText, пока она отображается в оболочке, а затем сохранить отредактированную версию этой строки в editedText?

У меня есть сомнения по поводу того, что это возможно, но если кто-нибудь может помочь уточнить, возможно ли это, я был бы очень признателен.

Заранее спасибо!


person Kevin Gurney    schedule 19.04.2011    source источник
comment
Какую ОС вы используете? Это важно.   -  person ReinstateMonica Larry Osterman    schedule 19.04.2011


Ответы (1)


Конечно, это возможно. Просто выведите правильные экраны терминала. Для каждого побега убедитесь, что вы закрываете все популярные терминалы.

Или избавьте себя от хлопот и используйте readline или ncurses.

person wilhelmtell    schedule 19.04.2011
comment
Я пытался использовать \r и \b, но ни один из них не работал. Это другая escape-последовательность, которую я должен использовать? Мой код: #include ‹iostream› int main() { std::cout ‹‹ Test. ‹‹ \б; вернуть 0; } - person Kevin Gurney; 19.04.2011