C como verificar se meu buffer de entrada (stdin) está vazio?

Quero saber como verificar se meu buffer de entrada (talvez chamado stdin) esteja vazio ou não. não quero que o programa pare se o buffer estiver vazio e não quero que a entrada termine necessariamente com '\ n'; portanto, apenas o uso de scanf não é suficiente.

Eu tentei pesquisar no google e neste site, mas nenhuma resposta foi suficiente. Eu tentei usar feof (stdin) assim:

int main()
{
char c,x;
int num;
scanf("%c",&c);
scanf("%c",&x);
num=feof(stdin);
printf("%d",num);
}

mas tudo o que fez foi imprimir 0, independentemente da entrada. adicionar fflush (stdin) após o segundo scanf deu o mesmo resultado. outras respostas sugeriram o uso de select e poll, mas não consegui encontrar explicações para essas funções. algum outro fórum me disse para usar getchar (), mas acho que eles entenderam mal a minha pergunta.

na pesquisa do google, tentei: C como verificar o buffer de entrada vazio, C stdin vazio, c "buffer de entrada" verificar vazio. Esta é uma pergunta geral, não é para um código específico, por isso não importa por que eu preciso.

** se você sugerir que eu use select / poll, você poderia adicionar uma explicação sobre como usá-los?

questionAnswers(4)

yourAnswerToTheQuestion