2009-11-20 136 views
2

出於某種原因ncurses的不喜歡標準輸入,我知道我可以使用,而不是getstr(),這裏是我在做什麼,到目前爲止,NCURSES標準輸入

while (fgets(str, BUF, stdin) != NULL) { 
    printf("input something "); 
} 

怎麼可能我得到一個替代stdin的循環(也許使用getstr())?

任何幫助將不勝感激。

感謝

+0

我想你回答了你自己的問題。有沒有什麼特別的你正在尋找使'getstr()'低劣的選擇? – LnxPrgr3 2009-11-20 21:52:14

回答

1

您可以使用getstr()從標準輸入讀取到一個緩衝區。檢查curses HOWTO的例子。

#include <ncurses.h> 
#include <string.h> 

int main() { 
    char buf[80]; 

    initscr(); 

    do { 
     getstr(buf); 
     mvprintw(5, 0, "You entered: %s", buf); 
    } while (strcmp(buf, "STOP")); 

    endwin(); 

    return 0; 
} 
1

對於使用ncurses的捕捉輸入,我會使用的基於你的需求的3個功能之一:

殘培()爲字符,scanw()的格式化輸入和最後getstr()