2012-04-06 67 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