我正在用Ada编写一个程序,它一次读取一个字符的输入数字字符。我正在尝试模拟退格按钮,但我无法找到一种方法来覆盖或删除已放置在屏幕上的角色。
我知道put(ASCII.ESC&“[J”)可以清除屏幕,但我不确定它是如何工作的,或者是否可以操作删除单个字符或行。我基本上想创建一些可以作为退格按钮的东西,但我真的不确定如何在Ada中这样做。我在网上找不到这么多文档。
任何建议都将不胜感激。以下是我的代码片段:
loop
get_immediate(buffer);
exit when buffer = LF;
--Using dash as a backspace key
if (buffer = '-') then
put(ASCII.ESC & "[J");
--Print to terminal if the character is numeric
elsif (buffer >= '0' and buffer <= '9') then
put(buffer);
end if;
end loop;
答案 0 :(得分:2)
来自我的一个项目:
procedure Put_Backspace is
Move_Left : constant String := Ada.Characters.Latin_1.ESC & "[D";
begin
Put (Move_Left & " " & Move_Left);
end Put_Backspace;