gpt4 book ai didi

colors - 如何使用 D 将颜色打印到控制台中?

转载 作者:行者123 更新时间:2023-12-04 03:45:37 26 4
gpt4 key购买 nike

我尝试了使用 writeln() 函数的转义序列,我还尝试将它们与从 std.c.stdlib 模块导入的 printf() 函数一起使用,但它只打印一个空行。

printf("\0x1B[5;32;40m Blink Text");

printf("\e[5;32;40m Blink Text\e[m");

writeln("\0x1b\x5b1;31;40m\tColor");

这些都不起作用。

我已经尝试了我能想到的一切,有没有办法?

搜索 D 网站的图书馆引用对我没有帮助。

编辑:解决方案

好的,所以我尝试导入函数 SetConsoleTextAttribute,正如 Mars 建议的那样:
extern (Windows) bool SetConsoleTextAttribute(void*, ushort);

我还导入了另一个函数(我只是猜想我需要导入,因为我以前没有 Win 编程经验)
extern (Windows) void* GetStdHandle(uint);

并简单地调用了这两个函数
auto handle  = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, FOREGROUND_BLUE);
writeln("In Color");

这非常有效,非常感谢大家的时间和帮助

最佳答案

就像 Cyber​​Shadow 指出的那样,您必须使用\x1B 或\033。只要您在 Linux 上,它应该可以正常工作。但 Windows 不支持这些代码。这里必须使用API​​函数SetConsoleTextAttribute来自 std.c.windows.windows。

关于colors - 如何使用 D 将颜色打印到控制台中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9350842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com