C++
 Computer >> コンピューター >  >> プログラミング >> C++

【C++入門】コマンドライン引数の取得と解析方法をわかりやすく解説

C++のプログラムは、実行時にコマンドラインから値を受け取ることができます。この値はコマンドライン引数(command line arguments)と呼ばれます。設定値などをソースコード内にハードコーディングするのではなく、プログラムの外部から柔軟に動作を制御したい場合に、コマンドライン引数は非常に重要な役割を果たします。

コマンドライン引数は、main()関数の引数を通じて処理されます。argcには渡された引数の総数が整数で格納され、argv[]は各引数を指すポインタの配列です。argv[0]にはプログラム名自身が格納されるため、ユーザーが指定した引数はargv[1]以降に順番に並びます。

次の例では、コマンドラインから引数が渡されたかどうかをチェックし、その結果に応じて処理を切り替えています。

サンプルコード

#include <iostream>
using namespace std;
int main( int argc, char *argv[] ) {
   if( argc == 2 ) {
      cout << "The argument supplied is "<< argv[1] << endl;
   } else if( argc > 2 ) {
      cout << "Too many arguments supplied." <<endl;
   } else {
      cout << "One argument expected." << endl;
   }
}

実行結果(引数が1つの場合)

$./a.out testing
The argument supplied is testing

実行結果(引数が複数の場合)

$./a.out testing1 testing2
Too many arguments supplied.

実行結果(引数なしの場合)

$./a.out
One argument expected

ポイントまとめ

  • argc:プログラム名も含めた引数の総数。引数なしで実行した場合でも、最低1(プログラム名のみ)になります。
  • argv[0]:実行されたプログラム名が格納されます。
  • argv[1] 以降:ユーザーが指定した引数が順に文字列(C言語形式のchar配列)として格納されます。
  • 引数はすべて文字列として渡されるため、数値として使いたい場合は std::atoi()std::stoi() などで変換する必要があります。

このように、argcとargvを組み合わせることで、プログラムの外部から自由に値を渡し、挙動を制御できます。設定ファイル名やモード指定など、実行ごとに変えたい情報を扱う際にぜひ活用してください。

  1. コマンドラインでUbuntuを更新する方法 – aptコマンドの基本を徹底解説

    Linuxのコマンドライン操作に慣れた上級者にとって、システムをコマンドラインから更新するスキルは必須です。常に最新の状態を保つことで、システムの安全性とセキュリティが確保され、最新機能もすぐに利用できるようになります。この記事では、Ubuntuデスクトップやサーバーをターミナル、またはSSH接続経由でアップデートする方法をわかりやすく解説します。 なぜコマンドラインで更新すべきなのか GUIツールではなく、あえてコマンドラインを使ってUbuntuを更新する理由は何でしょうか? 最大のメリットは、「ソフトウェアの更新」などのGUIツールよりも処理が速く、更新の進行状況をリアルタイムで確認でき

  2. Tkinterでボタンのcommandに引数を渡す方法を解説

    Tkinterでアプリケーションを開発していると、ボタンをクリックしたときに特定のウィンドウを開いたり、何らかのイベントを実行したりしたい場面がよくあります。ボタンを完全に機能させるためには、commandオプションに関数を渡す仕組みを理解しておくことが重要です。 commandオプションとは commandはButtonウィジェットの属性のひとつで、値として「関数名」を受け取ります。ここに指定された関数が、ボタンが押されたときに実行されるイベントの動作を定義します。 まずは基本となる例として、ウィンドウとボタンを作成し、command属性に関数を渡してイベントを発生させてみましょう。 サンプ