【问题标题】:Execute user input during spacebar press in C program [duplicate]在C程序中按空格键时执行用户输入[重复]
【发布时间】:2015-08-19 05:10:05
【问题描述】:

我一直在尝试编写一个在用户输入时接受用户输入的程序。只要单词被空格分隔,我需要这些输入字符串通过调用外部可执行文件来完成某些任务。我尝试使用scanf()。虽然可以读取这些单词,但只有在按下 ENTER 后才能执行可执行文件。即,程序仅逐行执行所需的调用,而不是逐字执行。反正有没有让程序逐字执行调用?也就是按下SPACE的时候,能不能调用?

如果在 C 中不可能,那么在任何其他编程语言(如 python、c++ 等)中是否可能?

【问题讨论】:

  • 尝试gets()调用。 char *gets(char *s); gets() 允许您将字符串作为输入。它会在你按回车时返回
  • @SiddeshParmar gets不会有帮助。
  • @MichaelWalz:fgetc 也不会。这需要适当的键盘处理例程,而 C 或 C++ 标准库中没有提供这些例程。
  • @BenjaminLindley 你是对的。
  • 如果 C/C++ 不能,任何其他编程语言有帮助吗?

标签: c


【解决方案1】:

问题是您的终端正在缓冲该行,直到您按下回车键。在您按下回车键之前,输入甚至不会进入您的程序,因此如果不通过将终端置于原始模式来调整终端的工作方式,就无法解决这个问题。以下问题的答案详细介绍了如何使您的终端不进行行缓冲:How to avoid press enter with any getchar()

【讨论】:

  • 其他编程语言也是这样吗?
  • 对于几乎任何编程语言,您都可以找到一个可以在您按下一个键时立即处理键盘输入的库。但是,我不知道有什么方法可以让程序类型在终端上运行而不会弄乱终端的配置。
猜你喜欢
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 2016-12-06
  • 2021-08-20
  • 1970-01-01
  • 2020-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多