Можно ли отображать редактируемый текст в оболочке через стандартный 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)


arrow_upward
2
arrow_downward

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

Или избавьте себя от хлопот и используйте 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