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 «входной буфер» проверить пустой. это общий вопрос, он не относится к конкретному коду, поэтому не имеет значения, зачем он мне нужен.
** если вы предлагаете мне выбрать / опросить, не могли бы вы добавить объяснение, как их использовать?