C - コマンドライン引数
C プログラムの実行時に、コマンド ラインから C プログラムに値を渡すことができます。これらの値はコマンドライン引数と呼ばれます 多くの場合、これらの値はプログラムにとって重要です。特に、コード内にこれらの値をハードコーディングするのではなく、外部からプログラムを制御したい場合に重要です。
コマンド ライン引数は、main() 関数の引数を使用して処理されます。argc 渡された引数の数を参照し、argv[] プログラムに渡される各引数を指すポインター配列です。以下は、コマンドラインから提供された引数があるかどうかを確認し、それに応じてアクションを実行する簡単な例です-
#include <stdio.h> int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } }
上記のコードを単一の引数でコンパイルして実行すると、次の結果が生成されます。
$./a.out testing The argument supplied is testing
上記のコードを 2 つの引数でコンパイルして実行すると、次の結果が生成されます。
$./a.out testing1 testing2 Too many arguments supplied.
上記のコードをコンパイルして引数を渡さずに実行すると、次の結果が生成されます。
$./a.out One argument expected
argv[0] に注意してください プログラム自体の名前と argv[1] を保持します は、指定された最初のコマンド ライン引数へのポインターであり、*argv[n] は最後の引数です。引数が指定されていない場合、argc は 1 になり、引数を 1 つ渡すと argc になります。 は 2 に設定されています。
すべてのコマンド ライン引数をスペースで区切って渡しますが、引数自体にスペースがある場合は、そのような引数を二重引用符 "" または単一引用符 '' で囲むことで渡すことができます。上記の例をもう一度書き直して、プログラム名を出力し、二重引用符で囲んでコマンドライン引数を渡します-
#include <stdio.h> int main( int argc, char *argv[] ) { printf("Program name %s\n", argv[0]); if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } }
上記のコードをコンパイルし、単一の引数をスペースで区切って二重引用符で囲んで実行すると、次の結果が生成されます。
$./a.out "testing1 testing2" Program name ./a.out The argument supplied is testing1 testing2
C言語