多くのC++のIDE'やコンパイラでは、main関数を生成するときに、次のようになります。
int main(int argc, char *argv[])
IDEを使わず、コマンドラインコンパイラだけでC++をコーディングするときは、次のように入力します。
int main()
とパラメータなしで入力します。 これは何を意味しているのでしょうか。また、私のプログラムにとって重要なことなのでしょうか。
CやC++では、main()
にコマンドライン引数を渡す方法として、argv
とargc
があります。
argcは
argv` が指す文字列の数になります。 事実上すべての実装がプログラム名を配列の前に付加するので、これは(実際には)1+引数の数になります。
変数の名前は慣習的に argc
(argument count) と argv
(argument vector) となっていますが、任意の有効な識別子を与えることができます。int main(int num_args, char** arg_strings)` も同様に有効です。
また、コマンドラインの引数を処理するつもりがなければ、これらを完全に省略して、int main()
とすることもできます。
次のようなプログラムを試してみてください。
#include <iostream>
int main(int argc, char** argv) {
std::cout << "Have " << argc << " arguments:" << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << std::endl;
}
}
./test a1 b2 c3`で実行すると、次のように出力されます。
Have 4 arguments:
./test
a1
b2
c3
argcはコマンドラインからプログラムに渡される引数の数、
argv`は引数の配列です。
引数の数を知るには、次のようにループします。
for(int i = 0; i < argc; i++)
{
// argv[i] is the argument at index i
}
mainのパラメータは,プログラムを起動したときに与えられたコマンドラインのパラメータを表します.引数
argcは、コマンドライン引数の数を表し、
char *argv[]` は、コマンドラインで提供された個々の引数を表す文字列(キャラクタポインタ)の配列です。