C 转义序列 \033[999D 无法正常工作
C escape sequence \033[999D not working properly
我正在尝试使用转义序列 \033[999D 作为将光标移动到控制台顶行的蛮力方式。当我 运行 我的程序,而不是按照我的意图去做时,它 returns 一个左向箭头和一个 [999D,在我上次所在的同一行上。
如何正确使用这个转义码?有没有(更好的)替代品?
我的(测试)代码:
printf("This is a line\n");
printf("This is another line\n");
printf("3[999D Overwrite");
我的输出:
This is a line
This is another line
←[999D Overwrite
有两个问题(最有可能):第一个是D
VT100 cursor control sequence是要返回列,也就是说它将返回当前行 的一些列 。不会换行。
打印代码的第二个也是可能的问题是因为您可能正在使用 Windows 控制台程序("DOS prompt"),默认情况下它在处理 VT100 序列方面非常糟糕。
您特别感兴趣:
GetStdHandle
(MSDN)
SetConsoleCursorPosition
(MSDN)
- Here is an example 显示如何将光标移动到特定位置。
- Here is an example 显示如何清除屏幕。
希望设置控制台颜色的人感兴趣:
我正在尝试使用转义序列 \033[999D 作为将光标移动到控制台顶行的蛮力方式。当我 运行 我的程序,而不是按照我的意图去做时,它 returns 一个左向箭头和一个 [999D,在我上次所在的同一行上。
如何正确使用这个转义码?有没有(更好的)替代品?
我的(测试)代码:
printf("This is a line\n");
printf("This is another line\n");
printf("3[999D Overwrite");
我的输出:
This is a line
This is another line
←[999D Overwrite
有两个问题(最有可能):第一个是D
VT100 cursor control sequence是要返回列,也就是说它将返回当前行 的一些列 。不会换行。
打印代码的第二个也是可能的问题是因为您可能正在使用 Windows 控制台程序("DOS prompt"),默认情况下它在处理 VT100 序列方面非常糟糕。
您特别感兴趣:
GetStdHandle
(MSDN)SetConsoleCursorPosition
(MSDN)- Here is an example 显示如何将光标移动到特定位置。
- Here is an example 显示如何清除屏幕。
希望设置控制台颜色的人感兴趣: