#include <stdio.h>
int main ()
{
int c;
while ((c = getchar ()) != EOF)
{
putchar (c);
printf ("*");
}
return 0;
}
when I run this program, the output I get is as
qwerty
q * w * e * r * t * y *
*
#I'm not getting how this last "*" is getting printed.
It has something to do with the return of putchar()
. So how does putchar()
function actually returns. I know that it returns after EOF is reached, so in that case, it won't print anything and printf("*")
will get executed. But the thing is, why the last *
is getting printed in the next line. Is it like putchar()
returns and shift the printing pointer to new line?
One theory I get over this doubt is that, if I don't press 'enter' after giving input, *
will not be printed. But it again created a question as of how do I get output (after giving the input), without pressing enter? And why is it like that the last *
is there due to pressing 'enter'?