gpt4 book ai didi

c - 使用左键箭头向左移动,而不是使用 fgets 输入字符

转载 作者:行者123 更新时间:2023-11-30 19:25:29 25 4
gpt4 key购买 nike

当我尝试使用fgets(line, MAX, stdin)读取字符串时,我无法使用箭头向后移动并进行更正;而是插入 ^[[D 等字符。是否有 fgets 的有效替代方案。

这是我用来读取输入的周期:

char *buf = line;
char line[MAX];
printf("Enter x to quit\n>>");

for(;;) {

if(fgets(buf = line, MAX, stdin) == NULL || *buf == 'x')
break;

}

*buf = '^[[D '时,有没有办法像退格键一样向左移动光标,但不删除以前的字符?

我想要一个不依赖外部库(例如 bash readline)而是纯粹 C ANSI 的解决方案。

最佳答案

fgets 函数从输入流接收一个字符串。击键和输入流之间的关系完全取决于您的操作系统。

如果操作系统提供的功能不适合您,那么您可以使用控制台输入库,例如 ncurses

关于c - 使用左键箭头向左移动,而不是使用 fgets 输入字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58708222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com