I am confused about getchar()‘s role in the following code. I mean I know it’s helping me see the output window which will only be closed when I press the Enter key.
So getchar() is basically waiting for me to press enter and then reads a single character.
What is that single character this function is reading? I did not press any key from the keyboard for it to read.
Now when it’s not reading anything, why does it not give an error saying “hey, you didn’t enter anything for me to read”?
#include <stdio.h>
int main()
{
printf( "blah \n" );
getchar();
return 0;
}
The
getchar()function will simply wait until it receives a character, holding the program up until it does.A character is sent when you hit the enter key; under a Windows OS, it will send a carriage return (CR) and a line-feed (LF).
See this CodingHorror post for a nicely put explanation.
(…the explanation of the CR+LF part, not the
getchar()blocking part)