c++ - 升压程序选项 : Description too wide for terminal

标签 c++ boost-program-options

我正在使用 Boost Program Options 来解析命令行参数(我不想错过它,因为它工作得很好)。但是,我有一个问题:Boost 程序选项提供了为每个选项分配描述的可能性。 Boost 然后提供了可能性

cout << program_options_description << endl

很好地显示帮助解释选项。但是,这些错误消息似乎被调整为 80 的终端宽度(我的结论是,对于 80 的宽度,换行符设置得很好)。

如果我当前的终端有另一个宽度(特别是少于 80 列的终端),由于终端自动换行,显示的帮助看起来非常不自然。

那么:有没有可能是Boost自动调整选项描述为当前终端宽度?

最佳答案

options_description接受列宽作为参数。

options_description(const std::string &, unsigned = m_default_line_length, 
                      unsigned = m_default_line_length/2);

我相信 m_default_line_length 的默认值为 80。另外,see this SO question在 linux 上获取终端宽度,然后将其传递给构造函数。或者如果你是 Windows,你会想调用 GetConsoleScreenBufferInfo .

关于c++ - 升压程序选项 : Description too wide for terminal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16935908/

相关文章:

c++ - 在运行的 Windows 控制台应用程序中处理拖放文件

c++ - boost program_options 是否支持关闭开关(例如 --no-myswitch 或 -s=no)

c++ - boost::program_options 中的短参数没有长

c++ - 如何在 Boost::Program_Options 中支持配置文件语法 “key value”?

c++ - 将自定义函数传递到基本抽象类以延迟执行

c++ - 使用 select() 请求/回复服务器。无法写回客户端

c++ - 如何在不使用 malloc 或 new 运算符的情况下分配内存空间?

c++ - Qt XML 继承

c++ - 如何使用 boost::program_options 解析本身包含开关的命令行参数?

c++ - 在程序选项值(ini 文件)中使用井号