最大ボード幅 80 セル、最大ボード高さ 52 セルのボード ゲームを作成しようとしていますが、ユーザーはコマンド ラインに寸法を入力して寸法を選択できるはずなので、寸法が最大値より小さくなる可能性があります。私はプログラミングが初めてですが、コマンドライン引数がCのメイン関数を介して渡されることを知っています。これに固執していて、答えが見つからないようです。
誰でも助けてくれますか?
最大ボード幅 80 セル、最大ボード高さ 52 セルのボード ゲームを作成しようとしていますが、ユーザーはコマンド ラインに寸法を入力して寸法を選択できるはずなので、寸法が最大値より小さくなる可能性があります。私はプログラミングが初めてですが、コマンドライン引数がCのメイン関数を介して渡されることを知っています。これに固執していて、答えが見つからないようです。
誰でも助けてくれますか?
このmain関数は 2 つの引数を取ります。通常は整数と呼ばれargc、文字列ポインタの配列は通常 と呼ばれargvます。main通常、次のように宣言されます。
int main(int argc, char *argv[])
argc変数は、プログラムに渡される引数の数です。
変数には、argvプログラムに渡される実際の引数が含まれています。
実際のプログラム名は常に引数として渡され、 にあるため、argc変数は少なくともと等しくなります。1argv[0]
2 つの引数が必要な場合は、最初argcに少なくとも と等しいことを確認する必要があり3ます。プログラムの最初の引数は文字列として に格納されargv[1]、2 番目の引数は に格納されargv[2]ます。
次のようなプログラムを試すことをお勧めします。
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("argc = %d\n", argc);
for (int i = 0; i < argc; i++)
printf("argv[%d] = \"%s\"\n", i, argv[i]);
return 0;
}
そして最後に (問題とは関係ありませんが、それでもなお興味深い)、argv配列のサイズが実際にはほとんどの人が予想するよりも 1 大きいという事実があります。argv配列のサイズは実際にはargc + 1であり、argv[0](プログラム名) からargv[argc]. この最後のエントリ ( argv[argc]) は常にNULLポインタです。