私の入力バッファ(おそらくstdinと呼ばれる)が空であるかどうかを調べる方法を知りたいです。 バッファが空であればプログラムを停止したくないので、入力を必ず '\ n'で終わらせたくないので、scanfだけでは不十分です。C |私の入力バッファ(stdin)が空であるかどうかをチェックする方法?
私はGoogleとこのウェブサイトで検索してみましたが、回答が足りませんでした。 私はこのようなFEOF(標準入力)を使用してみました:
int main()
{
char c,x;
int num;
scanf("%c",&c);
scanf("%c",&x);
num=feof(stdin);
printf("%d",num);
}
が、それがなかったすべては関係なく、入力を0を印刷しませんでした。 2回目のスキャン後にfflush(stdin)を追加すると同じ結果が得られました。 他の回答はselectとpollを使って示唆されましたが、私はこれらの関数の説明を見つけることができませんでした。 他のフォーラムでgetchar()を使用するように言われましたが、私は彼らが私の質問を誤解していたと思います。
私は試してみました:Cどのように入力バッファが空であるかチェックしています。Cの入力が空です。 これは一般的な質問です。具体的なコードではないので、なぜそれが必要なのかは問題ではありません。
**私がselect/pollを使用することをお勧めする場合は、それらを使用する方法についての説明を追加できますか?
fseek (stdin, 0, SEEK_END);
num = ftell (stdin);
fseek
stdin
入力バッファの末尾にポインタを置きます。ここでは
はSOの質問をする方法を参照してください。ここにコードはありません。 – Boiethios
専用スレッドの入力から読み取ります。 –
「googleとこのウェブサイトで検索しましたが、回答がありませんでした」 - 使用したseachストリングと返されたリンクが十分でない理由を教えてください。 –