最大ボード幅 80 セル、最大ボード高さ 52 セルのボード ゲームを作成しようとしていますが、ユーザーはコマンド ラインに寸法を入力して寸法を選択できるはずなので、寸法が最大値より小さくなる可能性があります。私はプログラミングが初めてですが、コマンドライン引数がCのメイン関数を介して渡されることを知っています。これに固執していて、答えが見つからないようです。
誰でも助けてくれますか?
最大ボード幅 80 セル、最大ボード高さ 52 セルのボード ゲームを作成しようとしていますが、ユーザーはコマンド ラインに寸法を入力して寸法を選択できるはずなので、寸法が最大値より小さくなる可能性があります。私はプログラミングが初めてですが、コマンドライン引数がCのメイン関数を介して渡されることを知っています。これに固執していて、答えが見つからないようです。
誰でも助けてくれますか?
このmain
関数は 2 つの引数を取ります。通常は整数と呼ばれargc
、文字列ポインタの配列は通常 と呼ばれargv
ます。main
通常、次のように宣言されます。
int main(int argc, char *argv[])
argc
変数は、プログラムに渡される引数の数です。
変数には、argv
プログラムに渡される実際の引数が含まれています。
実際のプログラム名は常に引数として渡され、 にあるため、argc
変数は少なくともと等しくなります。1
argv[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
ポインタです。