Позволяет пользователю редактировать текст, уже напечатанный на экране в C - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу изменить текст на моем экране, как текстовый процессор, при вводе пользователем, поэтому могу ли я получить get («текст, который пользователь может редактировать», переменная для редактирования по тексту)

Я пробовал массивы и пытался исследовать динамически созданные переменные для этого. Мой код ниже:

#include <stdio.h>
int main(void) {
int run;
int run = 1;
char string;
do
{
char string = getchar();
} while (run == 1);
}

Я ожидаю, что результат будет похож на текстовый процессор и позволю пользователю редактировать текст, уже отображаемый на экране. В результате я получаю программу, которая работает как пишущая машинка для каждого абзаца, поэтому ее невозможно редактировать после нажатия клавиши ввода

1 Ответ

0 голосов
/ 17 апреля 2019

В Linux вы можете использовать библиотеку readline, и там для каждой прочитанной строки будет использоваться системный считыватель строк, который позволит редактировать, подбрасывать стрелки и тому подобное, пока вы не нажмете ввод.См. http://web.mit.edu/gnu/doc/html/rlman_2.html.

С другой стороны, если вы хотите создать свой собственный линейный редактор или мини-текстовый процессор, то вам придется сохранить, по крайней мере, относительную позицию вашего текущегонаведите курсор, сотрите и перерисуйте строку при каждом нажатии кнопки и измените ее положение на место.

Вот пример редактора строк https://www.dreamincode.net/forums/topic/136583-line-editor-in-c/

...