If you're allowed to use concurrency, you could fork() a new process and dup2() stdin to a new file descriptor in your child process. You want to make sure not to dup2() your stdin on your main process or else you'll lose the ability to read from stdin.
Happy to go into more detail if this seems like the right detail of direction
Edit: Can you share how you've "stopped" reading in from traditional stdin? I'm confused because normally reading from a file should not stop you from being able to read from stdin.
Edit2 - I think fvu is right, if you look at the page you linked to you, theres an answer that talks about using dup2() to copy the stdin file descriptor to a temp file descriptor, replace the file descriptor for stdin with something else, and then replace it again with its temp copy. That sounds like what you're looking for