如何在Linux中使用C访问单个字符或像素



我正在尝试使用类似于Console.CursorTop和left的东西,在那里我可以将光标设置为特定的字符。据我所知,我需要一个叫做"句柄"的东西。我为windows找到了这样的东西,我知道它是什么。我需要类似的东西来用于linux甚至跨平台。

我试着在olcConsoleGameEngine中找到一些东西,但代码库对我来说是先进的

要在终端上进行控制和绘图,请使用curses,特别是ncurses。如果使用宽版本<ncursesw.h>,则可以使用宽字符,基本上包括所有Unicode字符。这是可跨操作系统移植的。

(对于大多数终端,ncurses将使用ANSI转义码,因此您可以直接使用转义码,正如kotatsuyaki在对该问题的评论中所提到的那样。然而,curses库也允许更好/不阻塞的键盘控制,并使整个程序可跨操作系统移植,因此使用curses通常是更好的解决方案。(

对于访问单个像素,请使用SDL(用于类似游戏的东西(或Gtk或Qt工具包(用于类似应用程序的东西(。这些也都可以跨操作系统移植。


除了库本身,您还需要到C#或Python或您选择使用的任何语言的绑定(除非您对库使用本机语言:C表示curses/ncurses、SDL和Gtk,C++表示Qt(。

在Linux中,使用包管理器安装所需的(开发!(包。你不需要从任何网站下载任何东西。

你可以在网上找到所有这些的教程。不要害怕看诅咒的旧教程:这个界面已经稳定了几十年了。

Linux中的所有终端都支持UTF-8(因为内核本身支持终端设备使用UTF-8(,因此您可以使用所有Unicode字符(这些字符包含在这些终端设备中使用的字体中(。如果有一个愤怒的用户默认使用非UTF-8语言环境,他们可能看不到所有Unicode字符,除非他们使用LANG=C.UTF-8 LC_ALL=C.UTF-8前缀运行程序(使用UTF-8选择默认语言环境(,但这是他们的选择。

最新更新