作者 主題: C語言..請問linux-gcc有沒有比較好用的字元輸入函數  (閱讀 5419 次)

0 會員 與 1 訪客 正在閱讀本文。

相殺

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
請問在linux-gcc有沒有比較好用的字元輸入函數:
最近要把以前在DOS下(現在還在寫)寫的程式移植到linux可是一開始就有一個很大的問題(當然對各位大大來說是小事一件啦!!!)
我用的是Turbo C 2.0程式介面是以選單方式供使用者選擇要執行的各項指令或常用字串(隊伍)的輸入,在程式內用的鍵盤控制函數是用以前我買的書(書名忘了可是內附的中文函數很好用)內附的函數,用法如下:

#include <myh.h>/*所有函引檔及原型宣告*/
main()
{
  int code;

  do
  {  
     code=etgetkeybord(NOWAIT);/*這個函數是書附的*/
                                /*NOWAIT不等候按鍵,WAIT等待按鍵*/
     swatch(code)/*這個保留字忘記怎拼了,知道意思就好^^!*/
    {
    case CODE_ENTER:/*按鍵的掃描碼值已另行在自行定義的key.h內*/
    ......
    ......
    break;
    case CODE_UP:
    ......
    ......
    break;
    case CODE_DOWN:
    ......
    ......
    break;
    case CODE_L:
    ......
    ......
    break;
    case CODE_R:
    ......
    ......
    break;
    case CODE_ESC:
      return;
    }
    timedsp();/*時間顯示函數..格式為年/月/日 時:分:秒*/  
  }while(1);/*無窮迴路*/

}

問題就在我用gcc標準函數庫的字元I/O函數都必須要輸入後再按Enter才能取得按鍵的ASCII或掃描碼,這就變成使用者每次按方向鑑(或任何鑑)時都必須按Enter才能選取(輸入)選單內的下一個字串!!!!!

請問各位大大gcc有沒有類似上例etgetkeybord()的函數
或是類似int86()的函數可以用阿!!!

thyme

  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 1281
    • 檢視個人資料
參考一下
代碼: [選擇]

curs_getch(3X)                                                  curs_getch(3X)
                                                                               
NAME
       getch, wgetch, mvgetch, mvwgetch, ungetch, has_key - get (or push back)
       characters from curses terminal keyboard
                                                                               
SYNOPSIS
       #include <curses.h>
                                                                               
       int getch(void);
       int wgetch(WINDOW *win);
       int mvgetch(int y, int x);
       int mvwgetch(WINDOW *win, int y, int x);
       int ungetch(int ch);
       int has_key(int ch);

相殺

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
版主超人感謝您的賜教
因為家裡還沒牽網路所以我是在網咖上來的(過幾天就去牽了)所以要回家才能實做看看可不可行,

可是<curses>很像是在寫圖形介面用的(有本書上有寫到)!!!

getch()下面那3個看起來應該是圖形介面的東西,可是我不會,我寫的是純文字介面
int ungetch(int ch);<--un...好像不能用                                                          
int has_key(int ch); <--這個應該可以,還要試試

總之非常感謝您的啦,.....對了這是man出來的吧!!哈!我忘了叫男人