2012-04-06 69 views
1

我開始學習C現在,我試圖找出我怎麼會去當用戶點擊捕獲用戶的「輸入」按鍵「輸入」。我特別關注scanf和getc函數,但我不太清楚如何去做。當用戶點擊進入時,我想在等待/觀看時再執行一些操作,以便他再次進入......是否輸入了從控制檯進入的新線路角色?任何意見將不勝感激!捕獲用C

+1

如果您收到來自用戶,例如'的scanf()'其阻塞某些輸入。因此,在用戶鍵入輸入並按下後,PC自動進入程序的下一行。你可以在那裏輸入你的代碼 – noMAD 2012-04-06 23:04:16

回答

2

可以使用龜etc檢查ASCII值()。

while(condition) { 
    int c = fgetc(stdin); 

    if (c==10) {//Enter key is pressed 
    //your action 
    } 
} 
+0

儘管這是一個好方法,但如果應用程序需要用戶輸入一些輸入,這將不起作用。 – noMAD 2012-04-06 23:06:15

+0

@noMAD我明白你的觀點。但是,OP的工作就是解釋他需要這種方式才能工作。否則,我希望OP根據他的需要對其進行修改。 – 2012-04-06 23:12:24

1

如果你只需要輸入時用戶按下回車輸入您可以使用scanfgetchar。下面是從你進入到標準輸入(終端窗口)cplusplus.com

/* getchar example : typewriter */ 
#include <stdio.h> 

int main() 
{ 
    char c; 
    puts ("Enter text. Include a dot ('.') in a sentence to exit:"); 
    do { 
    c=getchar(); 
    putchar (c); 
    } while (c != '.'); 
    return 0; 
} 

此代碼打印的例子。

但是,如果你不想輸入(我知道這是真的不必要的和複雜的一個新的學習),你應該使用一個事件處理程序。

0

C語言是平臺無關的,不附帶自身的鍵盤交互。在編寫控制檯程序時,它是處理鍵盤輸入的控制檯,然後將其作爲標準輸入傳遞給您的程序。控制檯的輸入/輸出通常是緩衝的,所以你不能對一個按鍵作出反應,因爲控制檯只在每行之後將輸入發送到程序。

但是!如果你不要求你的控制檯應用程序與平臺無關,有一個非標準的庫<conio.h>在一些Windows編譯器,有一個叫getche();功能,這不正是你想要的東西 - 等待從控制檯的單一按鍵,返回被按下的char