C言語|コマンドライン引数について考える

C/C++
田中太郎
田中太郎

C言語でコマンドライン引数を使えるようにします

サンプルコード

sample.cpp
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
    int a = atoi(argv[1]);
    int b = atoi(argv[2]);
    char *c = argv[3];

    printf("arg = %d\n", argc);
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %s\n", c);
    return 0;
}
実行結果
gcc sample.cpp
./a.out 10 2 hoge
# 出力
# arg = 4
# a = 10
# b = 2
# c = hoge

解説

int main(int argc, char *argv[]){

argcには引数+1の数が入ります

今回は、「10」, 「2」, 「hoge」の3つを与えているので4が返ってきます

argv[] には引数が、文字列型で入ります

argv[0]は実行ファイル(今回はa.out)が入り、それ以降は順番に引数が入ります

int a = atoi(argv[1]);
int b = atoi(argv[2]);
char *c = argv[3];

argv[1], argv[2]は数字を与えているので、<stdlib.h> をインクルードしてatoi()関数で文字列型からint型にコンバートしています

まとめ

C言語でコマンドライン引数を使用する方法でした

コメント

タイトルとURLをコピーしました