0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【C++】コマンドライン引数の使い方

Last updated at Posted at 2025-11-26

Bashから実行するアプリケーションを作成する際に必須の知識となるのがコマンドライン引数の仕組みです。
本記事では、Bashから実行する例を使用して、コマンドライン引数で実行時に引数を受け取る方法と、その引数の使用方法を紹介します。

前提知識

  • シェルの基本的な使用方法を知っている
  • C++の基礎構文を理解している

コマンドライン引数とは

コマンドライン引数とは、プログラムを実行するときに外部から渡せる情報のことです。
Bashからの実行開始時にファイル名を渡す オプションを指定するといった際に不可欠となります。

コード例

受け取った引数を文字列としてそのまま出力するコード例

main.cpp
//---------------------------------------------------------------
//! @file  main.cpp
//! @brief コマンドライン引数のサンプルコード
//! @author つきの
//---------------------------------------------------------------
#include <iostream>
//---------------------------------------------------------------
//! @brief エントリポイントの関数
//! @param argc コマンドライン引数の個数
//! @param argv コマンドライン引数の配列
//! @return 0:正常終了  1:異常終了
//---------------------------------------------------------------
int main(int argc, char* argv[]) {
	// コマンドライン引数を表示、0番目はアプリケーション名なので1から開始
	for (int i = 0; i < argc; i++) {
		// 引数を表示
		std::cout << "argv[" << i << "] = " << argv[i] << std::endl;
	}
	// 正常終了
	return 0;
}

ビルドを行い、Bashなどのシェルでこのexeがあるディレクトリに移動をして実行してみます。
本記事のアプリケーション名はCommandLineArgsTest.exeとなっておりますので、実行する際にはこの名前を使用しています。

Bash
$ CommandLineArgsTest.exe HelloWorld こんにちは、世界
Text
argv[0] = CommandLineArgsTest.exe
argv[1] = HelloWorld
argv[2] = こんにちは、世界

コマンドラインから実行時に引数を受け取ることに成功しました。
main()コマンドライン引数可変長引数であり、実行時にBashへ入力した文字列が空白区切りで格納されます。
第一引数は、コマンドライン引数の個数で、慣習的にargcという名前を使用しています。
第二引数は、格納された文字列配列へのポインタとなっており、慣習的にargvという名前を使用しています。
文字列配列0番目には、実行ファイルの名前が格納されており、それ以降には入力した文字列が格納されます。

main.cpp
//---------------------------------------------------------------
//! @brief エントリポイントの関数
//! @param argc コマンドライン引数の個数
//! @param argv コマンドライン引数の配列
//! @return 0:正常終了  1:異常終了
//---------------------------------------------------------------
int main(int argc, char* argv[]) {
	// コマンドライン引数を表示、0番目はアプリケーション名
	for (int i = 0; i < argc; i++) {
		// 引数を表示
		std::cout << "argv[" << i << "] = " << argv[i] << std::endl;
	}
	// 正常終了
	return 0;
}

総括

  • コマンドライン引数を使用することで、実行時に値を受け取ることが出来る
  • C++ではmain()関数の引数リストにコマンドライン引数を記述し、個数には慣習的にargc、ポインタには慣習的にargvという名前を使用する
  • argv[0]には必ず実行ファイル名が入り、argv[1]以降に渡した引数が順番に格納される
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?