1
3
这是因为信号只捕获发送到程序线程的非常特定的信号,通常是通过操作系统或其他进程发送的。对于任何键盘输入,标准C实际上都没有办法做到这一点。您需要的是一个键盘侦听器,它需要绑定到运行进程的窗口。通常情况下,这不包括控制台,当我环顾四周时,我找不到任何东西。如果您有某种GUI,您可能会使用线程或至少GUI库的一些事件函数。 您可能可以使用线程让另一个线程在repeat上调用一些修改过的函数,该函数具有对可用于暂停程序的标志的共享内存访问。该线程可以处理可能阻塞的标准输入调用,如果您可以找到在操作系统上工作的代码,并进行编译,以确保调用没有阻塞,并且不需要按enter键。你不应该也不可能同时有多个东西试图从标准输入中读取。
http://www.geeksforgeeks.org/multithreading-c-2/ 您可以创建一个线程,该线程具有一个具有无限循环的函数,该循环执行等待的任务并捕获您的输入。只是不要打电话给join。(您想让它运行。)然后,您只需要一个基于输入和静态变量或“标志”的状态机 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |