C | Wie überprüfe ich, ob mein Eingabepuffer (stdin) leer ist?

Ich möchte wissen, wie ich überprüfen kann, ob mein Eingabepuffer (möglicherweise mit dem Namen stdin) leer ist oder nicht. Ich möchte nicht, dass das Programm stoppt, wenn der Puffer leer ist, und ich möchte nicht, dass die Eingabe unbedingt mit '\ n' endet. Daher ist es nicht ausreichend, nur scanf zu verwenden.

ch habe versucht, auf Google und auf dieser Website zu suchen, aber keine Antwort war genug. Ich habe versucht, feof (stdin) wie folgt zu verwenden:

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

, aber alles, was es getan hat, war das Drucken von 0, unabhängig von der Eingabe. Das Hinzufügen von fflush (stdin) nach dem zweiten Scanf ergab dasselbe Ergebnis. Andere Antworten schlugen die Verwendung von select und poll vor, aber ich konnte keine Erklärungen für diese Funktionen finden. Ein anderes Forum hat mir gesagt, dass ich getchar () verwenden soll, aber ich glaube, sie haben meine Frage falsch verstanden.

ei der Google-Suche habe ich versucht: C wie man den Eingabepuffer leer überprüft, C stdin leer, c "Eingabepuffer" leer überprüft. Dies ist eine allgemeine Frage, es ist nicht für einen bestimmten Code, so ist es egal, warum ich es brauche.

** Wenn Sie vorschlagen, dass ich select / poll verwende, könnten Sie bitte eine Erklärung hinzufügen, wie diese zu verwenden sind?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage