web-dev-qa-db-ja.com

argv [i]が存在するかどうかの確認C ++

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

./program arg1

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

14
thisiscrazy4

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

if (argc > 2) {
  ... use argv[2] ...
}
30
NPE

はいargv[i]NULLで終わります。 argcnumber 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;
}

HEARを学ぶ

5
Grijesh Chauhan

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

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

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

2
Abhineet

逆に試すこともできます。 argcの数をテストすると、argv[n]の存在を知ることができます。

0
Mahesh