我开始学习C现在,我试图找出我怎么会去当用户点击捕获用户的“输入”按键“输入”。我特别关注scanf和getc函数,但我不太清楚如何去做。当用户点击进入时,我想在等待/观看时再执行一些操作,以便他再次进入......是否输入了从控制台进入的新线路角色?任何意见将不胜感激!捕获用C
捕获用C
回答
可以使用龟etc检查ASCII值()。
while(condition) {
int c = fgetc(stdin);
if (c==10) {//Enter key is pressed
//your action
}
}
尽管这是一个好方法,但如果应用程序需要用户输入一些输入,这将不起作用。 – noMAD 2012-04-06 23:06:15
@noMAD我明白你的观点。但是,OP的工作就是解释他需要这种方式才能工作。否则,我希望OP根据他的需要对其进行修改。 – 2012-04-06 23:12:24
如果你只需要输入时用户按下回车输入您可以使用scanf
或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;
}
此代码打印的例子。
但是,如果你不想输入(我知道这是真的不必要的和复杂的一个新的学习),你应该使用一个事件处理程序。
C语言是平台无关的,不附带自身的键盘交互。在编写控制台程序时,它是处理键盘输入的控制台,然后将其作为标准输入传递给您的程序。控制台的输入/输出通常是缓冲的,所以你不能对一个按键作出反应,因为控制台只在每行之后将输入发送到程序。
但是!如果你不要求你的控制台应用程序与平台无关,有一个非标准的库<conio.h>
在一些Windows编译器,有一个叫getche();
功能,这不正是你想要的东西 - 等待从控制台的单一按键,返回被按下的char
。
printf("Hit RETURN to exit"\n");
fflush(stdout);
(void)getchar();
- 1. 捕获使用C#
- 2. 捕获使用C宏
- 3. Vb.net捕获Ctrl + C
- 4. C#CryptographicException未被捕获
- 5. 错误捕获接近C#
- 6. C#日历约会捕获
- 7. Objective-C的错误捕获
- 8. C#无法捕获SerializationException
- 9. 如何捕获变量(C#)
- 10. 捕获控制-C在Python
- 11. c#捕获ftp错误
- 12. 音频捕获在C#
- 13. C# - 捕获网络流量
- 14. C++编程尝试捕获
- 15. 在Java中捕获Ctrl + C
- 16. C++ 11 Lambda通过捕获
- 17. Visual C摄像头捕获
- 18. GLUT屏幕捕获在C
- 19. C#利用SlimDX捕获全屏游戏
- 20. 使用C捕获非活动窗口#
- 21. 在C#中使用BeginRead捕获异常
- 22. 使用c#从线程捕获热键;
- 23. 使用C捕获unix输出#
- 24. C++ 11通过值捕获的lambda捕获在声明点
- 25. 为什么C#试图捕获实际捕获错误?
- 26. 用findall捕获组?
- 27. 用NSDatePickerCell捕获setDateValue
- 28. 无法捕获按Ctrl + C在C#控制台应用程序
- 29. 如何在Windows中用c/C++捕获视频流?
- 30. RabbitMQ C#捕获异常问题
如果您收到来自用户,例如'的scanf()'其阻塞某些输入。因此,在用户键入输入并按下后,PC自动进入程序的下一行。你可以在那里输入你的代码 – noMAD 2012-04-06 23:04:16