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");
}
return 0;
}
単一引数でコンパイル・実行すると:
$ ./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");
}
return 0;
}
スペースを含む単一引数を二重引用符で囲んで実行すると:
$ ./a.out "testing1 testing2" Program name ./a.out The argument supplied is testing1 testing2
C言語
- 精密スリッティングライン:正確な幅への高度自動コイル切断
- 化学包装ラインの最適化:稼働率向上とOEE追跡のためのアップグレード
- デコーダの理解:タイプ、真理値表、実用応用
- ライン効率の理解:PCB生産における主要指標
- GD&T解説:ラインプロファイル vs サーフェスプロファイル
- 生産ライン(アセンブリライン)が製造効率を高める仕組み
- 建築ライン(セットバックライン)とは? 敷地境界からの建築制限ラインを理解する
- ブリッジタップ(橋渡し配線)が電話・インターネット品質に与える影響と対策
- アセンブリライン(組立ライン)の革新:互換部品がもたらした量産革命と現代への継承
- Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
- Javaコマンドライン引数のマスター:パラメータの渡し方とパース方法