>The second link you posted is not working.

Hmm. Maybe this?

>fflush(stdio)

fflush(stdout) - stdout is the standard output stream.

Code:
do {
   printf("enter two numbers: ");
   /* at this point, there may or may not be any visible prompt */
   fflush(stdout); /* this encourages it to be made visible */
   /* the next line will gather characters until the return key is pressed */
   fgets(buf, sizeof(buf), stdin);
Without fflush(stdout), you may see a prompt or you may see a blank line.
(1) In the example we are reviewing
fflush(stdio), does stdio count as a generic pointer to buf, or does it just clean the keybord input stream and print the stored data?
There is no stdio. You can fflush stdout to encourage the host to present the data sent to it. You can't fflush stdin because the standard input stream is an input stream, and behavior is undefined for fflush on an input stream.

(2) Does fflush(stdio) echo the inputed data to the screen immediately after keyed, or does it wait for the return to be depressed, before processing and printing?
Keyed? Return key?

My impression is that printf, et. al. do not write to the 'display': instead they write to the stdout, which is realized as some buffer. When the host is damn good and ready, it presents the buffer contents to the 'display'. The host is quite likely to do this after it sees a newline. But if it doesn't see a newline, it may just choose to wait a while. Adding the fflush(stdout) tells the host you'd like it to be shown now.

[This is a lot less technical than the link I tried to post, and my wording has been less than clear lately...]