我现在开始学习 C,我试图弄清楚当用户点击“输入”时我将如何捕捉。我特别关注 scanf 和 getc 函数,但我不太确定如何去做。当用户点击回车时,我想在等待/观看他再次点击回车时执行一些操作......“输入”是来自控制台的换行符吗?任何建议将不胜感激!
问问题
2403 次
4 回答
3
您可以使用 fgetc() 检查 ascii 值。
while(condition) {
int c = fgetc(stdin);
if (c==10) {//Enter key is pressed
//your action
}
}
于 2012-04-06T23:04:10.677 回答
1
如果您只需要在用户按 enter 作为输入时输入,您可以使用scanf
or getchar
。这是来自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;
}
此代码将您输入的内容打印到标准输入(终端窗口)。
但是,如果您不想要输入(我知道对于新学习者来说这确实是不必要且复杂的),您应该使用事件处理程序。
于 2012-04-06T23:08:58.507 回答
1
printf("Hit RETURN to exit"\n");
fflush(stdout);
(void)getchar();
于 2012-04-06T23:17:37.637 回答
0
C 语言是独立于平台的,它本身没有任何键盘交互。当您编写控制台程序时,控制台会处理键盘输入,然后将其作为标准输入传递给您的程序。控制台输入/输出通常是缓冲的,因此您无法对单个按键做出反应,因为控制台仅在每行之后将输入发送到程序。
然而!<conio.h>
如果您不要求控制台应用程序独立于平台,则在某些 Windows 编译器中有一个非标准库,getche();
它有一个名为char
被按下。
于 2012-04-06T23:10:46.250 回答