linux终端程序如何编写,[LINUX]利用Ncursesw编写支持中文的终端程序

news/2024/7/6 0:08:58

1. Ncursesw库的安装与使用

Ncurses库的安装(Ubuntu):

查看相关软件包

sudo apt-cache search ncursesw

安装ncursew必须软件包

sudo apt-get install libncurses5 libncurses5-dbg libncurses5-dev

使用Ncursesw库时,需要包含头文件 ncurses.h,没错,头文件没有改变。相应地,相关函数的使用也没有改变。

然而,在编译源文件时,采用选项-lncursesw替代原用-lncurses。

2. 使程序支持中文字符

在调用initscr()函数前,需要首先调用setlocale(LC_ALL,"")设置终端环境。具体请参见

man 3 setlocale

在man page中,我们还可以知道,为了使用setlocale这个函数,需要包含头文件locale.h。

如果没有这个头文件,可尝试安装libicu-dev软件包。

演示:

#include

#include

int main(void)

{

setlocale(LC_ALL,"");

initscr();

attron(A_BOLD);

printw("成功支持中文字符");

attroff(A_BOLD);

refresh();

getch();

endwin();

return 0;

}

2014.4.14补充:

在linux系统中,一般都要使用ncursesw库来实现中文输出。但是在Mac OS X中,只有ncurses库,利用上述代码同样可以输出中文。但是注意:无论使用那种情况,必须使用setlocale(LC_ALL,""),否则都有可能带来乱码!


http://lihuaxi.xjx100.cn/news/268621.html

相关文章

开发板运行linux下虚拟机ubuntu的ping

虚拟机网卡设置可以选择好几种方式,常用的就是NAT和桥接(bridged)虚拟机要和开发板进行网络通信,只能通过桥接方式连接。虚拟机要想被开发板ping通,设置步骤如下: 第一步:虚拟机设置成桥接方式。…

《Android开发从零开始》——11.AbsoluteLayoutFrameLayout学习

本节课的主要内容有: 1.介绍AbsoluteLayout布局的使用 2.介绍FrameLayout布局的使用 课程下载地址:http://u.115.com/file/f15a9d5411 课件及地址:http://u.115.com/file/f1b56ce345 【转】转载于:https://blog.51cto.com/professor/1573001

使用OpenCV构建会玩石头剪刀布的AI

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达这个项目的代码可以在我的Github上找到https://github.com/HOD101s/RockPaperScissor-AI- 简介这个项目的基础是深度学习和图像分类,目的是创建一个简单而有趣…

用 Python 可以实现侧脸转正脸?我也要试一下!

作者 | 李秋键责编 | Carol封图 | CSDN 下载自视觉中国近几年来GAN图像生成应用越来越广泛,其中主要得益于GAN 在博弈下不断提高建模能力,最终实现以假乱真的图像生成。GAN 由两个神经网络组成,一个生成器和一个判别器组成,其中生…

python 给字典排序

下面的是按照key的值从大到小的顺序来排序 >>> a{c:3, k:32, a:6, d:10} >>> sorted(a.items(), keylambda a:a[0]) [(a, 6), (c, 3), (d, 10), (k, 32)]下面的是按照key的值从大到小的顺序来排序。 >>> sorted(a.items(), keylambda a:a[1]) [(c…

Transformer模型有多少种变体?复旦邱锡鹏教授团队做了全面综述

视学算法报道转载自:机器之心编辑:Liyuan、杜伟自提出至今,Transformer 模型已经在自然语言处理、计算机视觉以及其他更多领域「大展拳脚」,学界也提出了各种各样基于原始模型的变体。但应看到,学界依然缺少系统全面的…

边工作边刷题:70天一遍leetcode: day 27

Permutation Sequence 原理:一个permutation是n位,在第i位的值取决于有多少个i-1位的组合。这i-1位的组合是在高位pick完之后剩下的数中 细节: 不同于decimal,位数是固定的,所以不能用k>0作为循环条件(这…

linux文件时间属性的详解

linux文件会有三个时间。stat file 可以查看三个时间如:Access: 2019-01-26 19:11:10.482357682 0800Modify: 2019-01-26 19:09:09.974811675 0800Change: 2019-01-26 19:11:10.482357682 0800分别是访问时间,文件内容修改时间,文件属性的改变…