- 論壇徽章:
- 15
|
本帖最后由 yulihua49 于 2013-08-13 23:55 編輯
skysky1752 發(fā)表于 2013-08-13 16:50 ![]()
回復(fù) 4# yulihua49
非窗口下使用什么函數(shù)來(lái)取字符呢?(不帶回車就可以取的,就像linux的很多命令 如le ...
這不是函數(shù)的問(wèn)題。
需要設(shè)置你的終端。使用ioctl函數(shù),見(jiàn)termio.h
把終端設(shè)置成每個(gè)字符都響應(yīng),無(wú)延遲模式,注意使用完畢及時(shí)恢復(fù)回來(lái)。否則行為將很怪異。
設(shè)置完成后,使用getchar也可以單鍵響應(yīng)。但是不能解釋功能鍵和方向鍵。
如果希望使用功能鍵如:KEY_F1,KEY_RIGHT,你必須在窗口模式下。使用getch()函數(shù)、
其實(shí)你就使用窗口函數(shù),挺方便的:
initscr();
clear();
echo();
move(10,20);
printw("%s",prompt);
refresh();
int c=getch();
if(c==KEY_F1) {
// 干點(diǎn)啥
}
ungetch(); //不是功能鍵,退回去。
scanw("%d",&a);//繼續(xù)接收數(shù)據(jù).
.......
endwin();
你還可以:
newwin();//開(kāi)新窗口
subwin();//開(kāi)子窗口
wprintw();//在新窗口或子窗口輸出
wrefresh();
man吧。
還可以在窗口畫框,顯示彩色、反顯、高亮、閃爍等各種屬性,比標(biāo)準(zhǔn)IO功能豐富多了。
|
|