Cでのコマンドライン引数の説明

公開: 2022-04-29

コマンドライン引数は、プログラムを内部ではなく外部から制御する必要がある場合に使用されます。 これは、引数がプライマリメソッドに直接渡される開発者向けのテキストインターフェイスです。

関数が呼び出されたときに関数内で渡される値は、引数と呼ばれます。 言い換えると、引数は、呼び出されたときに特定のメソッドに渡されるパラメーターです。

構文

int main(){/*…*/}

上記のコードはコマンドを受け取り、それをコンピューターのオペレーティングシステムに渡して実行します。 これらのコマンドは、コードが実行されているときに常に呼び出されます。

CCおよびC++コマンドライン引数は、その単純さと簡単に解読できる構文のため、実装が非常に簡単です。

コマンドライン引数を渡すには、main関数を次の2つの引数で定義する必要があります。

  1. コマンドライン引数の総数
  2. コマンドライン引数の全リスト

構文

int main(int argc、char * argv []){/*…*/}

  1. argc(ARGument Count)は、コマンドライン引数の総数を格納する整数データ型として定義されます。 当然のことながら、これは常に負でない値である必要があります。
  2. argv(ARGument Vector)は、コマンドライン引数のリスト全体を格納するために使用される文字データ型のポインターの配列を示します。

コマンドラインを使用すると、開発者は自分のコンピューター上のさまざまなファイルやフォルダーにアクセスできます。 複数のコマンドライン引数を含む特定のプログラムは、特定のデータのソースまたは宛先をすばやく識別できます。 また、プログラムの機能を変更する可能性もあります。 これにより、構築プロセスをソース管理に簡単に組み込むことができます。

開発の分野では、幅広いタスクで実際の視覚化は必要ありません。 このような場合、すべての機能はコマンドライン引数を使用して実行できます。 文字通りのグラフィカルインターフェイスには非常にまれな要件があります。 これは、多くの財政、労力、およびリソースを節約するのに役立ちます。

世界のトップ大学からオンラインソフトウェア開発コースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを迅速に追跡します。

目次

プロパティ| Cでのコマンドライン引数

コマンドライン引数には、非常に多くの興味深い便利なプロパティがあります。 それらは次のとおりです。

  • プログラムの名前を出力するには、コマンドはargv[0]である必要があります。
  • argv[argc]は本質的にnullポインタです
  • ユーザーが指定する最初の引数を出力するには、コマンドはargv[1]である必要があります。
  • ユーザーが端末からコマンドライン引数を渡します
  • これらのコマンドの使用は、プログラム内の値をハードコーディングする代わりに、外部からプログラムを制御することです。
  • コマンドライン引数は常にmain()関数に渡されます
  • 最初のコマンドland引数はargv[1]ですが、最後のコマンドはargv[n]です。

コマンドライン引数の例

以下は、Cのコマンドライン引数のデモプログラムです。

//説明するCプログラム

//コマンドライン引数

#include <stdio.h>

int main(int argc、char * argv [])

{{

intカウンター;

printf( "プログラム名は:%s"、argv [0]);

if(argc == 1)

printf( "\ nプログラム名以外に追加のコマンドライン引数が渡されていません");

if(argc> = 2)

{{

printf(“ \ n渡された引数の数:%d”、argc);

printf(“ \ n—-渡されるコマンドライン引数は次のとおりです—-“);

for(counter = 0; counter <argc; counter ++)

printf(“ \ nargv [%d]:%s”、counter、argv [counter]);

}

0を返します。

}

出力はさまざまなシナリオによって異なります。 それらはさらに個別に説明されています。

  1. 引数なし:

次の出力を生成するには、引数を渡さずにコードを実行する必要があります。

出力1–

$ ./a.out

プログラム名は:./a.out

プログラム名以外に追加のコマンドライン引数が渡されない

  • 3つの引数で:

次の出力を生成するには、3つの引数を使用してコードを実行する必要があります。

出力2–

$ ./a.out First Second Third

プログラム名は:./a.out

渡された引数の数:4

-以下は、渡されるコマンドライン引数です---

argv [0]:./a.out

argv [1]:最初

argv [2]:2番目

argv [3]:3番目

  • 単一の引数で:

次の出力を生成するには、コードを1つの引数でコンパイルして実行する必要があります。この引数は、引用符で囲んでスペースで区切る必要があります。

出力3–

$./a.out「FirstSecondThird」。

プログラム名は:./a.out

渡された引数の数:2

-以下は、渡されるコマンドライン引数です---

argv [0]:./a.out

argv [1]:最初の2番目の3番目

  • 引用符で囲み、スペースで区切った単一の引数:

次の出力を生成するには、コードをスペースで区切って一重引用符で囲んだ単一の引数を使用してコンパイルおよび実行する必要があります。

出力4–

$ ./a.out'First Second Third'

プログラム名は:./a.out

渡された引数の数:2

-以下は、渡されるコマンドライン引数です---

argv [0]:./a.out

argv [1]:最初の2番目の3番目

Cでのコマンドライン引数の利点

Cでコマンドライン引数を使用することにはいくつかの利点があります。それらは次のとおりです。

  • Cのコマンドライン引数は、プログラマーまたはユーザーが内部ではなく内部からプログラムに値を渡したい場合に使用できます。
  • コマンドラインアプリケーションは、バッチファイルまたはスクリプトで使用するために非常に簡単に作成できます。 これは、自動テストまたはビルドが関係する場合に非常に役立ちます。
  • プログラマーがツールを使用する代わりにツールを作成すると、コマンドラインの開発が容易になります。 引数の入力は、テキストストリームの出力よりもはるかに複雑で時間のかかる作業と見なされます。
  • さまざまなファイルやアプリケーションから情報を送受信できる場合、入力、出力、およびエラーストリームを非常に簡単にリダイレクトできます。
  • コマンドライン引数のエラー戻りメカニズムは非常に標準的で単純です。
  • プログラマーまたはユーザーが自宅や外出先からアクセスしようとしている場合、基本的にはモバイルであるときに、リモートシェルまたは他の同様の接続を介して使用すると、最小限のタスクの実行がはるかに簡単になります。
  • 複数のファイルを指定する機能については、定義済みのワイルドカード構文標準が存在します。これは、開発者またはプログラマーの既存の知識を利用して作成されます。
  • コマンドラインは魅力的で非常に高速です。

さまざまなコマンドライン引数の利点について説明します。以下は、それらを実装する方法のもう1つの詳細な例またはデモンストレーションです。

#include <stdio.h>

#include <conio.h>

//コマンドライン引数がプログラムに渡されるmainメソッドが呼び出されます

int main(int argc、char * argv [])

{{

//整数変数が定義されています

int a;

//プログラムに渡される引数の数が2以上であるかどうかを確認するために条件が適用され、条件が真の場合、プログラムに渡されるコマンドライン引数が出力されます。 それ以外の場合、引数はプログラムに渡されず、出力されます

if(argc> = 2)

{{

printf( "プログラムに渡される引数は次のとおりです:\ n");

for(a = 1; a <argc; a ++)

{{

printf( "プログラムに渡される引数は次のとおりです:%s \ t"、argv [a]);

}

}

そうしないと

{{

printf("プログラムに引数は渡されません\n");

}

0を返します。

}

出力:

プログラムに引数は渡されません。

コマンドライン引数は、mainメソッドを呼び出すことにより、上記のコードでプログラムに渡されます。 次のステップは整数変数の定義です。 次に、条件が渡されて、プログラムに渡された引数の数が2以上であるかどうかがチェックされます。条件が真の場合、プログラムに渡されたコマンドライン引数が出力されます。 そうでない場合、引数はプログラムに渡されず、出力されません。

結論

ソフトウェア開発におけるupGradのエグゼクティブPGプログラム–フルスタック開発の専門分野にサインアップして、CおよびC++でのコマンドライン引数の重要性について詳しく学んでください 13か月のコースは、意欲的なITプロフェッショナルがJava、Spring、Hibernate、HTML、React、Git、およびその他のさまざまなプログラミング言語とツールを習得して、QuoraやSwiggyなどの複雑なアプリケーションを構築できるように設計されています。

このプログラムでは、データサイエンスと機械学習の4か月間のエグゼクティブ認定も無料で提供されます。

Cでコマンドライン引数を実装する際にプログラマーが直面しなければならない基本的な欠点は何ですか?

Cのコマンドライン引数は開発者やプログラマーにとって便利ですが、いくつかの欠点があります。 基本的な知識がなく、これらのコマンドの操作に慣れていない人は、特に短期間で、学習して適応するのが非常に難しい場合があります。 ただし、これは、熟練したプログラマーや開発者にとっては問題ではありません。 しかし、それは、異なる分野または隣接する分野から来る可能性のある後輩の従業員にとって、時には障害となることが判明しています。 さらに、コマンドライン引数を実装して実行するにはキーボードが必要です。 誰かが自分の携帯電話やiPadなどからアクセスする必要がある場合、これはしばしば障壁になります。

コマンドライン引数を区切るために使用される区切り文字はどれですか?

コマンドライン引数を区切るには、通常、空白が使用されます。 これらは、コマンド名をそのパラメーターから分離し、さまざまなパラメーターを相互に分離します。 また、さまざまな値のリストを分離するときにも役立ちます。 マルチブランクは通常、シングルブランクとして扱われます。 これに対する唯一の例外は、引用符で囲まれた文字列または単一引用符で囲まれたコメントで発生します。

コマンドライン引数を変換することは可能ですか?

すべてのコマンドライン引数は文字列として渡されます。 数値は、プログラマーまたはユーザーが手動で内部形式に変換する必要があります。 main関数は常にそのパラメーターを受け取ります。これは通常、文字列の配列です。 これは、メイン関数が受け入れる唯一の関数引数です。 文字列データ型は、コマンドライン引数を格納するときに使用されるように作成されています。