私は学校のために少しプロジェクトがあります。私たちは迷路を生成するプログラムを持っています。 別の迷路を生成する引数を入れることも、画像として取得することもできます。stdinが空であるかどうかを調べる方法
我々はそのようにそれを呼び出す:
./test
または
./test --arg1ヴァル--arg2ヴァル--etc
引数を、次のようにstdinに入れたファイルに解析するように求められました。
args.txt今、私は上記の行のすべてのいずれかでプログラムを呼び出すことができなければなりません。引数のある行は動作し、stdinのプログラムの鉱山が動作しますが、何もない行はもう動作しません。./test <
私は、ユーザーが標準のファイルを送信したかどうかを確認する必要があります。私はファイルでプログラムを呼び出します。それ以外の場合は通常の方法です。私はfeofで試みたが、stdinはeofでさえも何も持たないので動作しない。 引数やファイルなしでプログラムを呼び出すと、ユーザーが何かを書くのを待っています。
基本的に私のコードは、その
int main()
{
int v;
if (stdin!=NULL)) //if a file has been passed "./test <test.txt"
{
scanf("%d",&v);
}
else { //if no files has been passed "./test "
printf("no file forwarded \n");
return 1;
}
if (v<50){printf("you drive slow\n");}
else {printf("you drive fast\n");}
return 0;
}
しかし、明らかに(STDIN!= NULL)は動作しませんようになるはずです。では、stdinに何かがあるかどうかを確認する方法はありますか? 私はクラスメートに尋ねましたが、そのうちの1人はfgetcを使って最初のcharを取得し、実際にcharがあればそれを返すと言っていましたが、fgetcを使用しようとするとcharがなければputを待ちます
私はstdinが空であるかどうか、またはファイルがあれば(新しいライブラリを使用しないで)どうすれば確認できますか?
事前 のおかげであなたは良い一日
を持って、私は完全に明確ではないです場合、私はネイティブスピーカーではないよ私にそれを教えてください、それは技術的な質問
stdinはeofを持たないため、常に0を返します。 私は引数なしで、引数またはファイルでプログラムを呼び出せます 現時点では引数またはファイルでしか呼び出せません – Rekch
引数なしで呼び出すと、 'argc '。ファイルに './test
mnistic
私はそれはおそらく、私はもう一度 を試してみましょう、それをmissusingよ全く動作does notのFEOFをしようとしたとき、私は、引数と頼めば、それは罰金 の作品私は feofを使用するときに、より正確にはサンプルコード で私の質問を編集しました私がファイルを尋ねると、それはうまく動作します 引数なしで尋ねるか、入力を待っているファイル(それは大文字小文字ではありません) ファイルを置くと!feof(stdin)return 0、そして私はしないときそれも0を返します – Rekch