kee*_*sma 4 text command-line c++ ncurses
当我sudo dpkg-reconfigure lightdm
在终端中执行时,我看到一个类似窗口的简单列表菜单。有没有办法在 C++ 中制作类似的东西?
这看起来像:
运行时看到的包含在终端中的基于文本的类似窗口的界面sudo dpkg-reconfigure lightdm
是使用ncurses库编码的。所以如果你想让你的程序提供一个看起来像这样的界面,你也可以使用 ncurses。
这是ncurses 项目页面。
您可以使用ncurses-doc安装一些 ncurses 文档文件 包裹。
这包括 ncurses 联机帮助页,您也可以在此处在线查看。它还包括 ncurses 库提供的所有功能的手册页(有些共享手册页)。这些手册页是不是目前在网上manpages.ubuntu.com。
要在 Ubuntu 中使用 ncurses 构建软件,您应该获得相应的头文件包。除非你是交叉编译,否则这将是:
对于使用大多数字符由单个字节表示的传统字符串的程序(例如UTF-8),请使用libncurses5.
如果您的字符串是char
(在 C 和其他基于 C 的语言中)或std::string
(在 C++ 中)的数组,这可能是您想要的。
对于需要宽字符支持的程序,请使用libncursesw5.
如果您的字符串是wchar_t
(在 C 和其他基于 C 的语言中)或std::wstring
、std::u16string
、 或std::u32string
(在 C++ 中)的数组,您将特别需要它。
或者,为了帮助调试您的程序,您可能还需要调试符号(用于gdb等调试器)。为此,安装libncurses5-dbg或libncursesw5-dbg
也。
另请参阅Launchpad 上的 Ubuntu 页面中的 ncurses,其中包含 Ubuntu 中主要 ncurses 软件包的列表以及每个当前支持的 Ubuntu 版本的版本信息。
当您使用 GCC 构建您的程序时(例如,使用gcc
org++
命令),给它一个参数-lncurses
or -lncursesw
,通常在命令的最后。这将您的程序链接到 ncurses 库。例如:
g++ -Wall -g -o hello hello.cpp -lncurses
Run Code Online (Sandbox Code Playgroud)
这将编译hello.cpp以生成一个带有调试符号 ( -g
)的可执行文件,称为hello ( -o hello
),对您可能需要警告的大多数事情发出警告 ( -Wall
),并链接到常规(非宽字符)ncurses 库 ( -lncurses
)。