One approach would be to create a second thread (CreateThread() I think?), in addition to the one that's waiting for input. The second thread could run continuously, check the actual time, update state, and so on. (Probably with a small Sleep, also, so it doesn't pin the CPU at 100%.)
Messages should be passed from your console-reading loop to the game loop in thread-safe queues. Ideally, should disable keystroke echoing on input, and let your game loop do all the printing, so user input display and game output can be controlled as you see fit.
Alternatively, you can have one loop for everything, and poll the keyboard state like described here: http://stackoverflow.com/questions/2067893/c-console-keyboard-eventshttps://stackoverflow.com/questions/2067893/c-console-keyboard-events. You'd compare the keyboard state each time through the loop and see which keys have changed, to infer keyup/keydown events.
That SO answer covers some other console-input methods, also, which could work in a one-loop solution.