コマンドライン引数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
x_kai
記事: 29
登録日時: 14年前
連絡を取る:

コマンドライン引数

#1

投稿記事 by x_kai » 13年前

何度も初歩的なことを質問してすみません。
今回は、コマンドライン引数についてなのですが、

コマンドライン引数(-a)が入力された場合
"引数 -a"と表示するプログラムを作っているのですが、

なぜか、引数がないときだけ

Segmentation fault が起こります。

ソースは以下のとおりです。

コード:

#include <stdio.h>

int main(int argc,char *argv[])
{
    if(argc != 0){
        if(!strcmp(argv[1], "-a")){
            printf("引数 -a\n");
        }
    }
    
    printf("Hello, World!\n");

    return 0;
}

box
記事: 2002
登録日時: 14年前

Re: コマンドライン引数

#2

投稿記事 by box » 13年前

実行ファイルに引数を与えなかったとき、
argcは1
argv[0]は実行ファイル名
argv[1]はNULL
となります。

argc != 0
で判断しているのがまずいようです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

x_kai
記事: 29
登録日時: 14年前
連絡を取る:

Re: コマンドライン引数

#3

投稿記事 by x_kai » 13年前

box さんが書きました:実行ファイルに引数を与えなかったとき、
argcは1
argv[0]は実行ファイル名
argv[1]はNULL
となります。

argc != 0
で判断しているのがまずいようです。
ありがとうございますっ、
出来ました。

閉鎖

“C言語何でも質問掲示板” へ戻る