C | Как проверить, если мой входной буфер (STDIN) пуст?

Я хочу знать, как проверить, пуст ли мой входной буфер (возможно, он называется stdin) или нет. Я не хочу, чтобы программа остановилась, если буфер пуст, и я не хочу, чтобы ввод обязательно заканчивался символом '\ n', поэтому просто использование scanf недостаточно.

Я пытался найти в Google и на этом сайте, но ответа не было достаточно. я попытался использовать feof (stdin) следующим образом:

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

но все, что он делал, это печатал 0 независимо от ввода. добавление fflush (stdin) после второго scanf дало тот же результат. другие ответы предлагали использовать select и poll, но я не смог найти объяснения этим функциям. какой-то другой форум сказал мне использовать getchar (), но я думаю, что они неправильно поняли мой вопрос.

в поиске Google я попытался: C как проверить входной буфер пуст, C stdin пустой, c «входной буфер» проверить пустой. это общий вопрос, он не относится к конкретному коду, поэтому не имеет значения, зачем он мне нужен.

** если вы предлагаете мне выбрать / опросить, не могли бы вы добавить объяснение, как их использовать?

Ответы на вопрос(4)

Ваш ответ на вопрос