My main intention was to make getchar
return as soon as it gets a character instead of waiting for the ENTER key. I tried this
int main()
{
setvbuf(stdin,NULL,_IONBF,0);
getchar();
return 0;
}
Comparing this with the prototype of setvbuf
setvbuf ( FILE * stream, char * buffer, int mode, size_t size );
it should set stdin
to unbuffered mode.
But still getchar()
keeps waiting for ENTER
I've seen related posts like this
Printing while reading characters in C
which are suggesting alternate methods to make stdin
unbuffered. But I am curious to know as to why setvbuf
method does not work
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…