我正在使用汇编语言和c创建一些用于打印和扫描的库函数。 现在当我输入数据时它正在打印,但问题是当我按退格键时光标向后移动(但没有删除任何东西)..我希望退格按钮正常工作(即删除前一个字符)
所以有任何计划。请帮助我。
答案 0 :(得分:1)
简单但稍微有点hack的方法是将退格字符(\b
)写入控制台。
例如:
#include <stdio.h>
int main()
{
printf("Testing");
fflush(stdout);
printf("\b\b\b");
fflush(stdout);
return 0;
}
但是这种类型的东西应该由您的终端驱动程序处理。您没有提到您在问题中定位的操作系统。
答案 1 :(得分:0)
输出退格,空格和退格:
int c = getchar();
if (c == '\b')
{
printf("\b \b");
fflush(stdout);
}
如果用户按下退格键已经被终端驱动程序回显,那么就这样做:
int c = getchar();
if (c == '\b')
{
printf(" \b");
fflush(stdout);
}
答案 2 :(得分:0)
如果你这样做,那么就想告诉你一件事 有两种类型的控制台,一种可以识别控制字符。叫 活动控制台(Canonical模式)和一个不称为行控制台的控制台。 显然,如果您使用unix的终端,那么您将被默认为Active模式控制台 但你可以通过执行一些命令将它设置为行模式。