Yersterday我试图在c中创建一个文本编辑器。但是我遇到了退格字符的问题。当我试图用outtextxy打印时,会出现一个奇怪的角色。 我尝试使用此退格代码:
str [2] =“\ b”;
outtextxy(X,Y,STR);
这在textmode下运行正常,但在图形模式下无法正常工作。 如果您有任何解决方案,请帮助我,我将在星期一提交我的计划。
提前致谢
答案 0 :(得分:1)
自从我上次关注这个问题以来,这已经过了20年。它是BGI(IIRC)中的低级图形输出功能。您将获得代码8的字形,这是一个在OEM字符集中带圆圈的矩形。
为了让它像puts()一样,你必须自己解释控制代码。如果看到退格(char 8),则必须更新内部“光标位置”变量并将x向后移动字体宽度。 '\ n'(增量y)和'\ r'(设置x为0)相同。
答案 1 :(得分:0)
由于U处于图形模式:
[第1步] 使用两个整数(比如x,y)跟踪当前位置
[第2步] 每当按下退格键时:
首先检查x == 0,y == 0:发出一声嘟嘟声;
否则检查x == 0,y> 0:然后使x =屏宽,y = y-1;
否则检查x> 0,y> 0:然后x = x-1;
现在你有正确的x,y坐标,只有 outtextxy 在这个位置有一个NULL /空格字符。
注意:在 outtextxy 之后,不要增加x,因为光标仍然应该位于prev字符位置。
好运!