Ich möchte wissen, wie ich überprüfen kann, ob mein Eingabepuffer (vielleicht stdin genannt) 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 notwendigerweise mit '\ n' endet, deshalb ist es einfach nicht genug scanf zu benutzen.C | Wie überprüfe ich, ob mein Eingabepuffer (Stdin) leer ist?
Ich habe versucht, auf Google und auf dieser Website zu suchen, aber keine Antwort war genug. Ich habe versucht, mit feof (stdin) wie folgt aus:
int main()
{
char c,x;
int num;
scanf("%c",&c);
scanf("%c",&x);
num=feof(stdin);
printf("%d",num);
}
aber alle es taten, war 0 Druck unabhängig von der Eingabe. Das Hinzufügen von fflush (stdin) nach dem zweiten scanf ergab das gleiche Ergebnis. andere Antworten vorgeschlagen mit Auswahl und Abfrage, aber ich konnte keine Erklärungen für diese Funktionen finden. ein anderes Forum hat mir gesagt, getchar() zu benutzen, aber ich denke, sie haben meine Frage falsch verstanden.
bei der Google-Suche habe ich versucht: C, wie Eingangspuffer leer zu prüfen, C stdin leer, c "Eingangspuffer" überprüfen leer. Dies ist eine allgemeine Frage, es ist nicht für einen bestimmten Code, also ist es egal, warum ich es brauche.
** Wenn Sie vorschlagen, dass ich Select/Poll benutze, können Sie bitte eine Erklärung hinzufügen, wie Sie diese verwenden? Hier
Sehen Sie, wie auf SO eine Frage zu stellen. Es gibt keinen Code hier ... – Boiethios
Lesen von der Eingabe in einem dedizierten Thread. –
"Ich habe versucht, auf Google und auf dieser Website zu suchen, aber keine Antwort war genug" - bitte sagen Sie uns, welche Suchzeichenfolge Sie verwendet haben, und warum die Links nicht ausreichend waren. –