让我们看一下以下程序打印约10行#

的情况
for(i=0;i<10;i++)
prinf("\n#");

现在如何回到第5行并编辑#并改变它的颜色而不清除屏幕或清除以下5行?

我试过

window(5,0,20,20);
textcolor(GREEN);
cprintf("#");

但是它没有编辑那个,但是它打印在原版的那边。为什么?

有没有其他方法可以动态更改已打印文本的颜色? 请帮帮我..我的环境是窗户上的涡轮增压

有帮助吗?

解决方案

窗口函数通常会从第一个两个坐标像素创建一个窗口,即在您的示例中(5,0)到下一个2坐标指向的像素。所以你的程序应该工作

尝试一下,否则使用gotoxy()

其他提示

看起来你正在混合printf和另一个输出库 - 不推荐这样做。 Printf期望被发送到一个字符终端,而有问题的输出库可能会假装它具有独占访问权(并且可能行为不端。)

基于一个函数,您可能使用conio.h。可以在此处找到该文档,其中的目录显示每个文档可用功能。从该索引,您应该能够立即发现该功能。

窗口函数没有按照您的意愿执行,因为它只设置光标可以更改文本的区域 - 它不会移动光标,您需要使用其他库函数。

-1:发布作业问题的一些提示:

1)正确的问题!发布的代码不会像描述中那样执行:

 for(i=0;i<10;i++)
    prinf("#");

这将在一行上打印10个字符,因为没有行尾字符。最初的描述涉及“打印10行”。

2)提供必要的详细信息:您使用的是什么环境:Windows? Linux呢?什么编译器?这是一个窗口或基于文本的环境吗?

3)STFW发布之前。寻找“ANSI Escape Sequences”和“ANSI Escape Sequences”。或“定位光标。”

也许 -

cprintf("\b#");

'b'代表退格

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top