新聞中心
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,移動(dòng)互聯(lián)網(wǎng)、、大數(shù)據(jù)、云計(jì)算等領(lǐng)域愈加火熱,而學(xué)習(xí)Linux編程對(duì)于從事這些領(lǐng)域的人們來(lái)說(shuō)顯得尤為重要。在Linux編程當(dāng)中,curses.h(字面意思是“啃字頭”的縮寫)是一個(gè)能夠幫助開(kāi)發(fā)者實(shí)現(xiàn)控制臺(tái)終端界面設(shè)計(jì)的庫(kù)。下面我們將細(xì)致分析curses.h這個(gè)庫(kù)的應(yīng)用方法。

目前創(chuàng)新互聯(lián)建站已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、靈臺(tái)網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
1.何為curses.h?
curses.h(也稱為ncurses.h)是一個(gè)由AT&T實(shí)驗(yàn)室編寫的Linix編程庫(kù),是一套控制終端的開(kāi)發(fā)庫(kù)。雖然在Linux操作系統(tǒng)上已經(jīng)存在了許多GUI(圖形用戶界面)的應(yīng)用,但是有很多時(shí)候在控制臺(tái)中就可以滿足開(kāi)發(fā)者的需求。它能被用在純文本環(huán)境下實(shí)現(xiàn)多種界面交互效果,在這方面有著強(qiáng)大的功能。使用curses.h提供的API,可以實(shí)現(xiàn)程序的移屏、文本添加、光標(biāo)移動(dòng)、顏色變換等多種效果,幫助開(kāi)發(fā)者實(shí)現(xiàn)更為出色的終端界面設(shè)計(jì),增強(qiáng)程序的可讀性、可用性。
2.如何使用curses.h?
在開(kāi)發(fā)過(guò)程中,需要先打開(kāi)終端,然后在頭文件中包含curses.h。具體來(lái)說(shuō),在進(jìn)行編輯時(shí)需要在命令行中輸入以下內(nèi)容:
#include
接下來(lái)就可以開(kāi)始使用 ncurses 編程庫(kù)中的全部功能,它們被包括在一個(gè)域中,域名是 stdscr。在閱讀和編寫 ncurses 底層的代碼之前,我們不需要知道更多。更實(shí)際一點(diǎn)的來(lái)說(shuō),使用curses.h主要包含以下幾個(gè)部分:
1.初始化curses:將終端轉(zhuǎn)換成程序界面,使用 initscr() 函數(shù)進(jìn)行初始化。之后顯示內(nèi)容將不再與終端的內(nèi)容完全一致。
2.繪制文本:使用 printw() 函數(shù)繪制文本,可以在同一行上輸出多個(gè)字符串。
3.圖形界面:可以使用 ncurses 庫(kù)中提供的 GUI 工具類庫(kù)。菜單、按鈕、選擇框等等模塊都可以通過(guò)這些工具快速生成。
4.鍵鼠控制:通過(guò) ncurses 庫(kù)可以讀取到鍵盤的輸入信息以及鼠標(biāo)的事件,包括鼠標(biāo)單擊和雙擊等。
5.移動(dòng)和改變UI:通過(guò)使用ncurses.h可以實(shí)現(xiàn)在控制臺(tái)上的圖形和文字的移動(dòng)、旋轉(zhuǎn)等一系列界面效果。這是非常有價(jià)值的。
這些是ncurses編程中的主要部分。我們?cè)诰帉慶urses.h代碼時(shí),需要使用這些方法和函數(shù)。
3.舉例說(shuō)明
以下是使用ncurses.h舉例說(shuō)明:
#include
#include
int mn()
{
initscr(); /*初始化curses操作庫(kù)*/
printw(“Hello,World!”); /*打印Hello,World!*/
getch(); /*等待鍵盤輸入*/
endwin]; /*結(jié)束window窗口*/
return 0;
}
在編譯和運(yùn)行時(shí),首行應(yīng)為:
g++ demo.cpp -o demo -lncurses && ./demo
上述代碼中包含的五大部分分別是:
純文本的Hello World! 繪制。控制臺(tái)中將打印“Hello,World! ”
等待鍵盤輸入功能,通過(guò) getch() 函數(shù)來(lái)實(shí)現(xiàn)。
結(jié)束為initscr()的窗口,請(qǐng)使用 endwin() 函數(shù)。
將上述文件命名為demo.cpp,命令行中運(yùn)行即可。
4.
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
C語(yǔ)言編程時(shí)windows 上能不能用curses.h頭文件
微軟是軟件開(kāi)發(fā)商,也不希褲耐伏望別的軟件畝局商超過(guò)自己的VISUAL
C++,保護(hù)主義!!C是更底層的軟件開(kāi)發(fā)程序,也是更好胡攜的,但是越來(lái)越缺乏支持,象韓國(guó)人要去漢化
,要想完美支持c,選擇linux吧!!!
VC++
6.0
編譯器
沒(méi)有
curses.h
頭文件
curses.h頭文件
與
VC++
頭文件定義
有一致也有不一致的地方。老枝銷
EOF,TRUE,
wchar_t
…這些一致。
WINDOW,SCREEN
這些不一致
你不可能用到
curses.h頭文件
的全部?jī)?nèi)容。你可以把你要用到的東西從curses.h
里挖出來(lái),一致的部分略搭茄去,不沖突的可以直接加入使用,沖突的要改一下。用到
curses.h
里的
庫(kù)函數(shù)
(若有庫(kù)函數(shù))就比較麻煩。
具體情況具體分析
。
一般說(shuō)來(lái),從unix
到
Windows,
要換腦筋,丟掉原來(lái)的一套侍游,全用新的一套。
關(guān)于curses.h linux的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!
標(biāo)題名稱:Linux編程必學(xué):curses.h的應(yīng)用(curses.hlinux)
文章轉(zhuǎn)載:http://fisionsoft.com.cn/article/dphdccs.html


咨詢
建站咨詢
