在 C 语言中捕获用户的"enter"击键

  • 本文关键字:enter 击键 用户 语言 c
  • 更新时间 :
  • 英文 :


我现在开始学习C语言,我试图弄清楚当用户点击"输入"时我将如何进行捕获。 我正在特别关注scanf和getc函数,但我不太确定如何去做。 当用户按回车键时,我想在等待/观察他再次按回车键的同时执行一些操作...... "输入"是从控制台传入的新行字符吗? 任何建议将不胜感激!

您可以使用 fgetc() 检查 ascii 值。

while(condition) {
    int c = fgetc(stdin);
    if (c==10) {//Enter key is pressed
    //your action
    }
}

如果您只需要在用户按 Enter 作为输入时输入,您可以使用 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;
}

此代码将您输入的内容打印到 stdin(终端窗口)。

但是如果你不想要输入(我知道这对新学习者来说真的是不必要的和复杂的),你应该使用事件处理程序。

printf("Hit RETURN to exit"n");
fflush(stdout);
(void)getchar();

参考: comp.lang.c 常见问题列表 ·问题19.4b

C 语言独立于平台,本身没有任何键盘交互。编写控制台程序时,控制台处理键盘输入,然后将其作为标准输入传递给程序。控制台输入/输出通常是缓冲的,因此您无法对单个按键做出反应,因为控制台仅在每行之后将输入发送到程序。

然而!如果您不要求控制台应用程序独立于平台,则某些 Windows 编译器中有一个非标准库<conio.h>具有一个名为 getche(); 的函数,它完全可以执行您想要的操作 - 等待控制台的一次按键,返回按下的char

最新更新