让我们假设下面的程序打印了大约 10 行 #
for(i=0;i<10;i++)
prinf("\n#");
现在如何回到第 5 行并编辑该 # 并更改它的颜色而不清除屏幕或清除以下 5 行?
我试过了
window(5,0,20,20);
textcolor(GREEN);
cprintf("#");
但它不是在编辑那个,而是在原始的一侧打印。为什么?
还有其他方法可以动态更改已打印文本的颜色吗?请帮帮我..我的环境是windows上的turbo c
看起来您正在混合 printf 和另一个输出库 - 不建议这样做。Printf 期望被发送到字符终端,而有问题的输出库可能错误地假设它具有独占访问权限(并且可能行为不端。)
基于一个函数,您可能正在使用 conio.h。可以在此处找到文档,其中包含显示每个可用功能的目录。从该索引中,您应该能够立即发现该功能。
窗口函数不会做你想做的事,因为它只设置光标可以更改文本的区域 - 它不会移动光标,你需要使用其他库函数。
-1:
发布家庭作业问题的一些提示:
1) 正确回答问题!发布的代码不执行描述状态:
for(i=0;i<10;i++)
prinf("#");
这将在一行上打印 10 个#
字符,因为没有行尾字符。原始描述谈到“打印 10 行”。
2) 提供必要的详细信息:您使用的是什么环境:Windows?Linux?什么编译器?这是一个窗口或基于文本的环境?
3) 发布前的 STFW。查找“ANSI 转义序列”或“定位光标”。
window 函数通常会从第一个两个坐标像素创建一个窗口,即在您的示例中 (5,0) 到下一个 2 个坐标指向的像素。所以你的程序应该可以工作
试试看,或者使用 gotoxy()
也许-
cprintf("\b#");
'b' 用于退格