题
让我们看一下以下程序打印约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'代表退格
不隶属于 StackOverflow