首页 > Ruby下ncursesw(gem)无法正常使用add_wch方法

Ruby下ncursesw(gem)无法正常使用add_wch方法

我的ncursesw gem安装过程

猜测ncursesw gem有一个依赖,直接装了:

bashsudo apt-get install libncursesw5-dev
nohighlight[sudo] password for satgo1546: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成       
下列【新】软件包将被安装:
  libncursesw5-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 11 个软件包未被升级。
需要下载 197 kB 的软件包。
解压缩后会消耗掉 1,208 kB 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu/ trusty/main libncursesw5-dev amd64 5.9+20140118-1ubuntu1 [197 kB]
下载 197 kB,耗时 0秒 (676 kB/s)
Selecting previously unselected package libncursesw5-dev:amd64.
(正在读取数据库 ... 系统当前共安装有 414283 个文件和目录。)
Preparing to unpack .../libncursesw5-dev_5.9+20140118-1ubuntu1_amd64.deb ...
Unpacking libncursesw5-dev:amd64 (5.9+20140118-1ubuntu1) ...
正在设置 libncursesw5-dev:amd64 (5.9+20140118-1ubuntu1) ...

我这么安装了ncursesw gem。

bashgem install ncursesw
nohighlightFetching: ncursesw-1.4.9.gem (100%)
Building native extensions.  This could take a while...
Successfully installed ncursesw-1.4.9
Parsing documentation for ncursesw-1.4.9
Installing ri documentation for ncursesw-1.4.9
Done installing documentation for ncursesw after 3 seconds
1 gem installed

问题

ruby#!/usr/bin/env ruby
require 'ncursesw'
begin
    scr = Ncurses.initscr
    Ncurses.add_wch("和".ord)
    Ncurses.refresh
    sleep 1
ensure
    Ncurses.endwin
end

预期它会在左上角输出``和''。但是结果是每次运行它的时候,会输出一个不一样的字符。

(化简后结果,以下字符均正常输出在屏幕左上角,并且前面确实有一个空格)

nohighlight$ ./trythis.rb
 羕
$ ./trythis.rb
 翻
$ ./trythis.rb
 翋

虽然不知道是什么原因,但是把Ncurses.add_wch("和".ord)改为Ncurses.addstr("和")即可解决。并且这样前面也没有空格了。

【热门文章】
【热门文章】