当键盘输入无限循环停止时 - C

frx*_*x08 2 c input nonblocking

有没有办法运行一个无限循环,只停止来自键盘的用户输入而不要求每个循环继续?在一个C程序中(我正在开发一个用for(;;)循环读取条目的C聊天,我只有在用户想要输入并发送消息时才需要停止它)嗨所有!

小智 6

您没有指定操作系统,所以我将假设一些符合POSIX的操作系统.

你可以使用select.这可以用于阻止一组文件描述符(在您的情况下,stdin)具有有限超时或无限阻塞.

我的猜测是,因为这是一个聊天程序,你也想在其他文件描述符上做这个,比如你的聊天tcp套接字.因此,您可以通过一次调用测试两者的输入.

对于Windows控制台,如果select对你不起作用,你应该能够使用GetStdHandle和WaitForSingleObject/WaitForMultipleObjects.