C转义序列\ 033 [999D无法正常工作

时间:2015-03-07 01:48:26

标签: c escaping

我正在尝试使用转义序列\ 033 [999D作为将光标移动到控制台顶行的强力方式。当我运行我的程序时,它不是按照我的意图行事,而是返回一个左箭头和一个[999D,与我上一次在同一条线上。

我应该如何正确使用此转义码?有没有(更好的)替换?

我的(测试)代码:

printf("This is a line\n");
printf("This is another line\n");
printf("\033[999D Overwrite");

我的输出:

This is a line
This is another line
←[999D Overwrite

2 个答案:

答案 0 :(得分:2)

查看Win32 Console API

特别感兴趣的是:

想要设置控制台颜色的人感兴趣:

答案 1 :(得分:0)

有两个问题(最有可能):首先是D VT100 cursor control sequence要返回多个,这意味着它会返回当前行列的列数。它不会改变线。

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