Easiest way to this I think would be using the ncurses library if you are working in Linux, and I think there is some function under Windows that can accomplish this task too.
I'm thinking out aloud here, but it may be possible to only use the stdio.h library. I would try opening up the stdin stream as a file, and use fseek to point to the end of the stream, and record the position of the pointer. Then print your message and update/check the position of the file pointer again. If it changes then you know the user has typed something in.
EDIT: Nevermind, I realized that this won't work. You still need scanf to update the stdin stream.