42056

[code]

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char *argv[])
    {
    　　int i;
    
    　　if(argc <= 1)
    　　　　return 1;
    　　if(strcmp(argv[1], "enum") == 0)
    　　　　for(i = 0;i<argc;i++)
    　　　　　　printf("argv[%d] : %s\n" , i, argv[i]);
    　　else if(strcmp(argv[1], "count") == 0)
    　　　　printf("コマンドライン引数の数 : %d\n", argc-1);
    　　return 0;
    }
    
[/code]

[Cの絵本 第2版]より、ifの後にelse ifではなくifを記述してありました。また2番目のifの次はelseではなく、esle
ifが記述されており、それぞれ何故なのか。  
実行結果が  
`>` cmdparam.exe enum orange apple  
argv[0] : cmdparam.exe  
argv[1] : enum  
argv[2] : orange  
argv[3] : apple  
`>`cmdparam.exe count orange apple  
コマンドライン引数の数 : 3  
となっております。  
`>`の行はキーボードから入力した文字とのことですが、  
・何処に入力した文字なのか  
・何故argv[1]のenumがcountに変えているのか  
以上お願い致します。


CC BY-SA 3.0
2018-02-28T05:46:39.533
42055
2018-02-28T07:26:46.720
2018-02-28T06:49:51.363
13022
27276
question
c
ifの使い方について


元質問のコードをifの実行範囲をはっきりさせるためにカッコで囲みました。  
これで理解できるでしょうか？

[code]

    int main(int argc, char *argv[])
    {
    　　int i;
    
    　　if(argc <= 1){
    　　　　return 1;
        }
    
    　　if(strcmp(argv[1], "enum") == 0){
    　　　　for(i = 0;i<argc;i++)
    　　　　　　printf("argv[%d] : %s\n" , i, argv[i]);
    　　}else{ 
            if(strcmp(argv[1], "count") == 0){
    　　　　    printf("コマンドライン引数の数 : %d\n", argc-1);
            }
        }
    
    　　return 0;
    }
    
[/code]

このプログラムがなにをするプログラムなのかを理解できれば、以降のあなたの疑問も理解できると思います


CC BY-SA 3.0
2018-02-28T06:34:34.890
42056
2018-02-28T07:26:46.720
2018-02-28T07:26:46.720
3060
27481
42055
answer