×

curses c curse

curses(linux 没有curses库,要安装什么包才能用)

admin admin 发表于2022-09-06 02:33:06 浏览160 评论0

抢沙发发表评论

本文目录

linux 没有curses库,要安装什么包才能用


Ubuntu下安装方法:
sudo apt-get install libncurses5-dev
CentOS下安装方法:
1.到网上下载这个库ncurses-5.6.tar.gz,同样的需要解压、configure、make。(./configure –with-named-curses-libs=/usr/lib/libncurses.so.5,指定目录比较重要,这里提供参考。)
2.另一种方法就是简单的yum命令了,输入yum install ncurses-devel,自动完成。
curses库是一组函数,程序员可以用它们来设置光标的位置和终端屏幕上显示的字符样式。curses库最初是由UCB的开发小组开发的。大部分控制终端屏幕的程序使用curses。曾经由一组简单的函数组成的库现在包括了许多复杂的特性。
-curse

C语言编程时windows 上能不能用curses.h头文件


VC++ 6.0 编译器 没有 curses.h头文件
curses.h头文件 与 VC++ 头文件定义 有一致也有不一致的地方。
EOF,TRUE,wchar_t ...这些一致。
WINDOW,SCREEN 这些不一致
你不可能用到 curses.h头文件 的全部内容。你可以把你要用到的东西从curses.h 里挖出来,一致的部分略去,不冲突的可以直接加入使用,冲突的要改一下。用到 curses.h 里的库函数(若有库函数)就比较麻烦。具体情况具体分析。
一般说来,从unix 到 Windows, 要换脑筋,丢掉原来的一套,全用新的一套。

ubantu14.04怎么安装curses


Ubuntu下安装方法:
sudo apt-get install libncurses5-dev
CentOS下安装方法:
1.到网上下载这个库ncurses-5.6.tar.gz,同样的需要解压、configure、make。(./configure –with-named-curses-libs=/usr/lib/libncurses.so.5,指定目录比较重要,这里提供参考。)
2.另一种方法就是简单的yum命令了,输入yum install ncurses-devel,自动完成。
curses库是一组函数,程序员可以用它们来设置光标的位置和终端屏幕上显示的字符样式。curses库最初是由UCB的开发小组开发的。大部分控制终端屏幕的程序使用curses。曾经由一组简单的函数组成的库现在包括了许多复杂的特性。
-curse

Curses什么意思


Python 的标准 curses 提供了“玻璃电传”(glass teletype)(在 20 世纪 70 年代,原始 curses 库刚创建时,它叫做 CRT)的公共特性的基本接口。有许多方法可以让用 Python 编写的交互式文本模式程序变得更巧妙。这些方法分成两类。
一方面,有些Python 模块支持 ncurses (curses 的超集)或 slang (相似却独立的控制台库)的全部功能集合。最值得注意的是,这当中有一个增强库(由适当的 Python 模块封装)可以让您将颜色添加到界面上。
另一方面,许多构建在curses(或 ncurses / slang )上的高级窗口小部件库添加了诸如按钮、菜单、滚动栏和各种公共界面设备之类的特性。如果您看到过用诸如 Borland’s TurboWindows(DOS 版)之类的库开发的应用程序,您就知道在文本模式控制台中,这些特性是多么吸引人。窗口小部件库中的功能单单使用 curses 都可以达到,但是还可以利用其它程序员在高级界面上取得的成果。请参阅 参考资料,以寻找所提到的模块的链接。
-c

win7如何安装curses


1.到网上下载这个库ncurses-5.6.tar.gz,同样的需要解压、configure、make。(./configure –with-named-curses-libs=/usr/lib/libncurses.so.5,指定目录比较重要,这里提供参考。)
2.另一种方法就是简单的yum命令了,输入yum install ncurses-devel,自动完成。
curses库是一组函数,程序员可以用它们来设置光标的位置和终端屏幕上显示的字符样式。curses库最初是由UCB的开发小组开发的。大部分控制终端屏幕的程序使用curses。曾经由一组简单的函数组成的库现在包括了许多复杂的特性。
-curse

python3.6.3 curses newwin 方法为何用不了


python 中curses封装了c语言的curses,把c中复杂部分简单化,比如addstr(),mvaddstr(),mvwaddstr()合并成了一个addstr()方法。

一、语法入门

1、打开和关闭一个curses 应用程序

在任何代码执行前都先要初始化curses。初始化操作就是调用initscr()函数,如下。该函数根据不同设备返回一个window对象代表整个屏幕,这个window对象通常叫做stdscr,和c语言报错一致。-c

import curses
stdscr = curses.initscr()

使用curses通常要关闭屏幕回显,目的是读取字符仅在适当的环境下输出。这就需要调用noecho()方法

curses.noecho()

应用程序一般是立即响应的,即不需要按回车就立即回应的,这种模式叫cbreak模式,相反的常用的模式是缓冲输入模式。开启立即cbreak模式代码如下。

curses.cbreak()

终端经常返回特殊键作为一个多字节的转义序列,比如光标键,或者导航键比如Page UP和Home键 。curses可以针对这些序列做一次处理,比如curses.KEY_LEFT返回一个特殊的值。要完成这些工作,必须开启键盘模式。-curse

stdscr.keypad(1)

关闭curses非常简单,如下:

curses.nocbreak()#关闭字符终端功能(只有回车时才发生终端)stdscr.keypad(0)
curses.echo() #打开输入回显功能

调用endwin()恢复默认设置

curses.endwin()

调试curses时常见的问题就是curses应用程序结束后没有重置终端到之前的状态,把终端弄的一团糟。python中该问题经常是因为代码有bug,发送异常引起的。比如键盘敲入字符后屏幕不回显,这让shell用起来非常困难。-c

为了避免这样的问题,可以导入curses.wrapper模块。这个函数做了一些初始化的工作,包括上面提到的和颜色的初始化。然后再执行你提供的函数,最后重置。而且被调用的函数写在try-catch中。

2、打开新窗口和pad

通常调用initscr()获取一个window对象代表全部屏幕。但是很多程序希望划分屏幕为几个小的窗口,为了重绘,擦出这些工作在小窗口中独立进行。newwin()函数就是用来新建一个新的窗口,需要给定窗口尺寸,并返回新的window对象的。-curse

begin_x = 20; begin_y = 7height = 5; width = 40win = curses.newwin(height, width, begin_y, begin_x)

注意:坐标通过是先y后x。这和别的坐标系统不同,但是根深蒂固,写的时候就这样现在改太晚喽。

当调用一个方法去显示或者擦除文本时,效果不会立即显示。 为了减少屏幕重绘的时间,curses就先累积这些操作,用一种更有效的方式去显示。就比如说你的程序先在窗口显示了几个字符,然后就清除屏幕,那就没必要发送初始字符了,因为它们不会被显示。-c

因此,curses需要你使用refresh()函数明确指出重绘窗口。

pad

pad是window的特例。pad可以比显示的屏幕大,一次只显示pad的一部分。创建一个pad很简单,只需要提供宽高即可。但是刷新pad需要提供屏幕上显示的部分pad的坐标。

pad = curses.newpad(100, 100)#  These loops fill the pad with letters; this is# explained in the next sectionfor y in range(0, 100):    for x in range(0, 100):        try:
pad.addch(y,x, ord(’a’) + (x*x+y*y) % 26)        except curses.error:            pass#  Displays a section of the pad in the middle of the screenpad.refresh(0,0, 5,5, 20,75)-curse

同时由多个window或者多个pad,有一问题:刷新某个window或pad时屏幕会闪烁。

避免闪烁的方法:在每个window调用noutrefresh()方法。 然后使用refresh()方法的最后再调用doupdate()方法。

3、显示文本

addscr不同格式如下:如果没有坐标,字符显示在上一次操作完的位置。

Form

Description

str or ch    Display the string str or character ch at the current position    

str or ch, attr    Display the string str or character ch, using attribute attr at the current position    -c

y, x, str or ch    Move to position y,x within the window, and display str or ch    

y, x, str or ch, attr    Move to position y,x within the window, and display str or ch, using attribute attr    -curse

属性可以让文本高亮显示,比如黑体,下划线,倒序,彩色显示。

4、属性和颜色

属性和描述:

Attribute

Description

A_BLINK    Blinking text    

A_BOLD    Extra bright or bold text    

A_DIM    Half bright text    

A_REVERSE    Reverse-video text    

A_STANDOUT    The best highlighting mode available    

A_UNDERLINE    Underlined text    

屏幕第一行reverse-video显示。

stdscr.addstr(0, 0, “Current mode: Typing mode“,
curses.A_REVERSE)
stdscr.refresh()

curses使用前景色和背景色,可通过color_pair()方法获取一对颜色。

使用颜色对1显示一行

stdscr.addstr(“Pretty text“, curses.color_pair(1))
stdscr.refresh()

start_color()初始化了8中基本颜色:0:black, 1:red, 2:green, 3:yellow, 4:blue, 5:magenta, 6:cyan, and 7:white。

init_pair(n,f,b)修改颜色对n,让f为前景色,b为背景色。颜色对0天生的黑白色,不允许改。

比如:修改color1为红色文本,白色背景:

curses.init_pair(1, curses.COLOR_RED, curses.COLOR_WHITE)

使用:

stdscr.addstr(0,0, “RED ALERT!“, curses.color_pair(1))

5、用户输入

获取输入一遍使用getch()方法,这个方法暂停等待用户输入,显示用echo()方法。

getch()返回一个整数 ,在0到255之间,表示输入字符的ASCII值。打印255的是些特殊字符,比如Page Up,Home。

代码经常这样写

while 1:
c = stdscr.getch()    if c == ord(’p’):
PrintDocument()    elif c == ord(’q’):        break  # Exit the while()
elif c == curses.KEY_HOME:
x = y = 0-c

getstr()获取一个字符串。因为功能有限不常用。

curses.echo()            # Enable echoing of characters# Get a 15-character string, with the cursor on the top lines = stdscr.getstr(0,0, 15)-curse


C语言中的有啥不同


微软是软件开发商,也不希望别的软件商超过自己的visual
c++,保护主义!!c是最底层的软件开发程序,也是最好的,但是越来越缺乏支持,象韩国人要去汉化
,要想完美支持c,选择linux吧!!!

python curses 怎么安装


curse是phyton封装的,你装了python就可以用的。
在任何代码执行前都先要初始化curses。初始化操作就是调用initscr()函数,如下。该函数根据不同设备返回一个window对象代表整个屏幕,这个window对象通常叫做stdscr,和c语言报错一致。
import curses
stdscr = curses.initscr()
-c

curses在gcc下该怎么编译


你用的是windows还是linux,有没有安装ncurses包呢?
如果是linux的话请安装 “libncurses5-dev”
编译参数是 “gcc file.c -lncurses” 没有错。