5

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

cout << program_options_description << endl

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

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

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

4

1 回答 1

13

options_description接受列宽作为参数。

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

我相信默认值是 80 m_default_line_length。另外,请参阅此 SO question以获取 linux 上的终端宽度,然后将其传递给构造函数。或者,如果您是 Windows,则需要调用GetConsoleScreenBufferInfo

于 2013-06-05T09:26:45.960 回答