there is any way to run an infinite cycle that stops only on user input from keyboard
without asking every cycle to continue? in a C program
(I’m developing a C chat that read the entries with a for(;;) loop and I need to stop it only when the user want to type and send a message) hi all!
there is any way to run an infinite cycle that stops only on user
Share
You didn’t specify the OS so I will assume some POSIX compliant OS.
You can use select. This can be used to block on a set of file descriptors (in your case, stdin) with a finite timeout or indefinite blocking.
My guess is, since this is a chat program, you would also want to do this on some other file descriptor, like your chat tcp socket. So you can test for input on both with one call.
In case of windows console, you should be able to use GetStdHandle and WaitForSingleObject/WaitForMultipleObjects if select does not work for you.