プログラミングの最初の知識| C言語のコマンドラインパラメーターをエレガントに学ぶ方法について

 

プログラムを実行するときに、コマンドラインからCプログラムに値を渡すことができます。これらの値はコマンドラインパラメーターと呼ばれ、プログラムにとって重要です。特に、これらの値をコードにハードコーディングするのではなく、外部からプログラムを制御する場合に重要です。

コマンドラインパラメーターは、main()関数パラメーターを使用して処理されます。ここで、argc は渡されたパラメーターの数を示し、argv [] はプログラムに渡された各パラメーターを指すポインターの配列です。

以下は簡単な例です。コマンドラインがパラメーターを提供しているかどうかを確認し、パラメーターに従って対応するアクションを実行します。

#include <stdio.h>  int main( int argc, char *argv[] )  {    if( argc == 2 )    {      printf("The argument supplied is %s/n", argv[1]);    }  

  else if( argc > 2 )   

 {      printf("Too many arguments supplied./n");    }    else    {      printf("One argument expected./n");    } }

上記のコードを1つのパラメーターでコンパイルして実行すると、次の結果が生成されます。

$ ./a.outテスト提供された引数はテストです

上記のコードを2つのパラメーターでコンパイルして実行すると、次の結果が生成されます。

$ ./a.outtesting1testing2指定された引数が多すぎます。

パラメータを渡さずに上記のコードをコンパイルして実行すると、次の結果が生成されます。

$ ./ a.out1つの引数が必要です

argv [0] はプログラムの名前を格納し、argv [1] は最初のコマンドラインパラメータへのポインタであり、* argv [n]は最後のパラメータであることに注意してください。

パラメータが指定されていない場合、argcは1になります。それ以外の場合、引数が渡された場合、argc は2に設定されます。

複数のコマンドラインパラメータはスペースで区切られますが、パラメータ自体にスペースが含まれている場合は、パラメータを渡すときにパラメータを二重引用符 ""または一重引用符 "で囲む必要があります。

上記の例を書き直してみましょう。スペースがあります。この観点を通過して、二重引用符または一重引用符 "" ""で囲むことができます。

上記の例を書き直して、二重引用符で囲んだコマンドラインパラメータをプログラムに渡します。

#include <stdio.h>  int main( int argc, char *argv[] )  {    printf("Program name %s/n", argv[0]);      if( argc == 2 )   

 {      printf("The argument supplied is %s/n", argv[1]);    }    else if( argc > 2 )    {      printf("Too many arguments supplied./n");    }   

 else    {      printf("One argument expected./n");    } }

スペースで区切られ、二重引用符で囲まれた単純なパラメーターを使用して、上記のコードをコンパイルして実行すると、次の結果が生成されます。

$ ./ a.out "testing1testing2"プログラム名./a.out指定された引数はtesting1testing2です。


さらに、プログラミング能力を向上させたい場合は、C言語とC ++プログラミングを学んでください。カーブで追い越し、一歩速く!ここでお手伝いできるかもしれません〜

UPは、C / C ++プログラミングの学習に関するビデオチュートリアルをホームページにアップロードしています。興味のある方、または学習している方は、ぜひご覧ください。お役に立てれば幸いです〜

共有(ソースコード、実際のプロジェクトビデオ、プロジェクトノート、基本的な入門チュートリアル)

キャリアを変えてプログラミングを学び、自分で考えるよりも多くの情報を使って学び、成長するパートナーを歓迎します。

プログラミング学習:

プログラミング学習:

おすすめ

転載: blog.csdn.net/weixin_45713725/article/details/115265022
おすすめ