作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我开始学习 Python 中的 curses。我在 Mac OS X 上使用 Python 3.5。当我尝试在右下角写入时,程序崩溃并出现以下错误:
$ python ex_curses.py
[...]
File "ex_curses.py", line 19, in do_curses
screen.addch(mlines, mcols, 'c')
_curses.error: add_wch() returned ERR
示例程序是:
import curses
def do_curses(screen):
curses.noecho()
curses.curs_set(0)
screen.keypad(1)
(line, col) = 12, 0
screen.addstr(line, col, "Hello world!")
line += 1
screen.addstr(line, col, "Hello world!", curses.A_REVERSE)
screen.addch(0, 0, "c")
(mlines, mcols) = screen.getmaxyx()
mlines -= 1
mcols -= 1
screen.addch(mlines, mcols, 'c')
while True:
event = screen.getch()
if event == ord("q"):
break
curses.endwin()
if __name__ == "__main__":
curses.wrapper(do_curses)
我觉得我错过了一些明显的东西,但我不知道是什么。
最佳答案
这是预期的行为(一个怪癖),因为 addch
试图在添加一个字符后换行 到下一行。有一个 comment in lib_addch.c处理这个:
/*
* The _WRAPPED flag is useful only for telling an application that we've just
* wrapped the cursor. We don't do anything with this flag except set it when
* wrapping, and clear it whenever we move the cursor. If we try to wrap at
* the lower-right corner of a window, we cannot move the cursor (since that
* wouldn't be legal). So we return an error (which is what SVr4 does).
* Unlike SVr4, we can successfully add a character to the lower-right corner
* (Solaris 2.6 does this also, however).
*/
关于python - 在右下角调用 addch 时 curses 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36387625/
我将 ncurses 与 noecho() 一起使用,并且我正在尝试从 TCHAR(或 char16_t)打印一个字符串带有 addch() 函数的数组。 我试过将我的 TCHAR 转换为 int,但
在关注 tutorial关于如何快速使用 ncurses 我一直面临错误: main.swift:31:15: error: cannot convert value of type 'UInt?'
我开始学习 Python 中的 curses。我在 Mac OS X 上使用 Python 3.5。当我尝试在右下角写入时,程序崩溃并出现以下错误: $ python ex_curses.py [..
我是一名优秀的程序员,十分优秀!