移动光标C.

时间:2016-04-14 01:00:16

标签: c

相同的代码,但它给出了运行程序的方式之间的不同结果。 谁可以向我解释。

#include <stdio.h>
#include <conio.h>

int main()
{
    printf("\x1b[%d;%dH", 11, 11);
    printf("Hello world");
    getch();
    return 0;
}

结果

enter image description here

3 个答案:

答案 0 :(得分:1)

程序正在发出terminal control codes,告诉控制台移动光标。不同的终端以不同的方式响应这些代码,这就是使用不同终端时得到不同结果的原因。

答案 1 :(得分:0)

很明显,左侧的shell不支持控制代码转义序列,右侧shell支持它。 或者,当您直接运行可执行文件时,它不会分配与cmd.exe中运行相同的控制台。

答案 2 :(得分:0)

这就是为什么我们有ncurses和类似的库