如何在C中制作“退格”程序?

时间:2011-07-14 06:30:01

标签: c assembly

我正在使用汇编语言和c创建一些用于打印和扫描的库函数。 现在当我输入数据时它正在打印,但问题是当我按退格键时光标向后移动(但没有删除任何东西)..我希望退格按钮正常工作(即删除前一个字符)

所以有任何计划。请帮助我。

3 个答案:

答案 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模式控制台 但你可以通过执行一些命令将它设置为行模式。