Мое главное намерение состояло в том, чтобы заставить getchar
возвращаться, как только он получает символ, вместо того, чтобы ждать клавиши ENTER. Я пробовал это
int main()
{
setvbuf(stdin,NULL,_IONBF,0);
getchar();
return 0;
}
Сравнивая это с прототипом setvbuf
setvbuf ( FILE * stream, char * buffer, int mode, size_t size );
, он должен установить stdin
в небуферизованный режим.
Но все же getchar()
продолжает ждать ENTER
Я видел похожие сообщения, подобные этому
Печать при чтении символов в C
, которые предлагают альтернативные методы для сделать stdin
небуферизованным. Но мне любопытно узнать, почему метод setvbuf
не работает