I have a console app in which I want to give the user x seconds to respond to the prompt. If no input is made after a certain period of time, program logic should
One way or another you do need a second thread. You could use asynchronous IO to avoid declaring your own:
If the read returns data, set the event and your main thread will continue, otherwise you'll continue after the timeout.