Ncurses限制输出大小

时间:2015-03-20 16:30:23

标签: c++ terminal ncurses curses

我正在学习如何使用ncurses和我在一个奇怪的情况下。 看来我的输出不能超过24行。 此外,每当我运行我的软件,执行完成他的工作,我的终端就像以前一样停止工作,我有两种不同的情况:

  • 如果我从第24行后面的一行开始我的运行,我可以使用终端,但如果我在窗口的最后一行继续滚动,则不会发生任何事情:所有输入和输出都会继续发生在最后一行,在输入压力下没有出现任何新行。
  • 如果我已经在24号线以上发起了运行,那么终端只会变成24行高。

这两种情况都要求我重置终端,然后一切都恢复正常。 我在MAC OSX机器上。

1 个答案:

答案 0 :(得分:0)

屏幕尺寸有问题:

  • 最容易看到的是,如果您将LINES环境变量设置为24. use_env联机帮助页提供了一些线索。
  • 这听起来像屏幕尺寸问题的原因是问题的描述表明该程序正在将滚动区域设置为24行。
  • 如果LINES没有问题,那么检查的地方是运行stty -a以查看操作系统假设屏幕大小的内容。这在stty输出的第一行报告为“行”。
  • 在某些情况下(例如在远程网络连接中),可能会有远程主机无法获取屏幕大小的会话。作为一种解决方法,您可以运行resize程序(xterm实用程序)来更新操作系统的屏幕大小概念。

顺便说一句,您的另一个问题NCurses not restoring terminal behavior似乎与此重复。您应该将问题合并为一个问题,以便为某人提供有关问题的有用信息的足够信息。