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

有两个问题(最有可能):第一个是DVT100 cursor control sequence是要返回,也就是说它将返回当前行 的一些列 。不会换行。

打印代码的第二个也是可能的问题是因为您可能正在使用 Windows 控制台程序("DOS prompt"),默认情况下它在处理 VT100 序列方面非常糟糕。

查看 Win32 Console API

您特别感兴趣:

希望设置控制台颜色的人感兴趣: