c - 允许用户编辑已经在 C 语言中打印在屏幕上的文本

标签 c c99

我想通过用户输入像文字处理器一样更改屏幕上的文本,所以我可以做 gets("用户可以编辑的文本",通过文本编辑的变量)

我尝试过数组,并尝试为此研究动态创建的变量。我的代码如下:

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

我希望结果像文字处理器一样,并允许用户编辑屏幕上已显示的文本。我得到的结果是程序就像每个段落的打字机一样,使得我按下回车后无法对其进行编辑

最佳答案

在 Linux 下,您可以使用 readline 库,每行读取都将使用系统定义的行读取器,这将允许编辑、 throw 箭头等,直到您按 Enter 键。请参阅http://web.mit.edu/gnu/doc/html/rlman_2.html

另一方面,如果您想构建自己的行编辑器或迷你文字处理器,那么您至少必须保留当前光标的相对位置,在每次相遇时删除并重新绘制行按,然后重新定位插入符号。

这是行编辑器的示例 https://www.dreamincode.net/forums/topic/136583-line-editor-in-c/

关于c - 允许用户编辑已经在 C 语言中打印在屏幕上的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55718529/

相关文章:

realloc 可以在左侧缩小我的数组(仅限 C)吗?

c - 是否可以使用 math.h 的 rand() 生成包括次正规数的随机 float ?

c - fabs 与 fabsl,我是否必须在源代码中输入 fabsl?

c++ - 根据 C 标准,fprintf、fputs...在 Windows 上的功能是否合法?

与 strcmp 比较加密字符串

c - pthread_cancel 总是崩溃

c - Variadic 宏扩展出错了

c - 如何在不收到警告 `strtod` char "Assigning to ' const char *' from ' 的情况下复制 *' discards qualifier"等的功能?

c - 为什么在 c99 或 c90 模式中支持 _Generic 关键字?

编译器函数和可执行文件