15

C++ プログラムを実行した場合

./program arg1

argv[1] は存在しますが、argv[2] が存在するかどうかを確認する方法はありますか?

4

4 に答える 4

33

はい、次の値を見てくださいargc

if (argc > 2) {
  ... use argv[2] ...
}
于 2012-11-28T07:46:48.930 に答える
5

はい、でargv[i]終わりNULLます。argcメイン関数にnumber of arguments渡されます。次のコードからアイデアを得てください。

#include<stdio.h>
int main(int argc, char* argv[]){
    int i=0;
    while(argv[i]!=NULL){
        printf("\n %s is argv %d ",argv[i],i);
            i++;
    }

    printf("\n");
}

desktop:~$ gcc main.c  -o main 
desktop:~$ ./main grijesh thisiscrazy4

   ./main is argv 0 
    grijesh is argv 1
    thisiscrazy4 is argv 2

ここで argv は -"./main","grijesh","thisiscrazy4",NULL で、argc = 3 でした。

argv[0]実行可能ファイル名 (実行のパス) は、エラー ステートメントをピントするために使用できます。
argv引数ベクトルとargc呼ばれ、引数カウンターと呼ばれます。他の変数名も使用できます。

環境変数も含む main() 関数の完全な構文について読んでください。

int main (int argc, char *argv[], char *envp[])
{
  return 0;
}

聞く

于 2012-11-28T07:57:10.007 に答える
2

のプロトタイプmainはそれをすべて言います:

int main(int argc, char **argv);

ここの最初のパラメータargcは、値を運びますNumber_Of_Arguments(argv[])_Present

于 2012-11-28T07:51:46.940 に答える
0

反対の方法を試すことができます。のカウントをテストするとargc、 の存在を知ることができますargv[n]

于 2012-11-28T07:47:03.937 に答える