6

我尝试在控制台中移动光标。

我发现 vt100 代码可以做到这一点。

#include<stdio.h>
int main()
{
    printf("123456789\n");
    printf("\033A");
    printf("abcdefghi\n");
    return 0;
}

它的输出与计划的不同。这就是上面的代码在控制台中打印的内容。

第二行“A”前有个小箭头,不能放到网页上

123456789
Aabcdefghi

在 Windows 的 Visual Studio 中编程时如何使用 vt100 代码?

4

2 回答 2

5

并非所有 Windows 平台都支持 VT100。只有那些 Windows 10 及更高版本(您可能会注意到 PowerShell 有颜色)。

如果您使用的是 Windows 10,则运行上面的代码但它不起作用;这意味着您尚未激活它(默认情况下它不会打开)。

有一种跨平台方法(您无需使用 Windows 特定功能即可开始使用)。

您只需要system(" ")在控制代码之前调用:

#include<stdio.h>
#include <stdlib.h> // Library for system() function

int main()
{
    system(" "); // Start VT100 support

    printf("123456789\n");
    printf("\033A"); // And you are away :)

    printf("abcdefghi\n");
    return 0;
}

或者您可以使用此处SetConsoleTextAttribute()描述的激活 VT100


您可以从 Microsoft 文档中找到有关控制台虚拟终端序列的更多参考:

以下序列的行为基于 VT100 和衍生的终端仿真器技术,尤其是 xterm 终端仿真器。有关终端序列的更多信息,请访问http://vt100.nethttp://invisible-island.net/xterm/ctlseqs/ctlseqs.html


这篇文章似乎也很有帮助,因为它描述了启动 VT100 的不同方法

于 2018-07-01T16:34:17.847 回答
1

VT100 代码在普通的 Windows 控制台中不起作用。您需要一个终端仿真程序

该页面似乎声称它确实支持 vt100。但我个人无法证实这一点。而且我找不到任何参考。

可能有点矫枉过正,但Cygwin包含一个 X 服务器,您可以使用它运行支持 vt100 代码的Xterm 。

于 2013-04-18T11:28:43.783 回答