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?

More than 3 years have passed since last update.

Visual Studioでint型のコマンドライン引数を受け取る方法(C++)

Last updated at Posted at 2020-06-12

環境

  • Windows 10 Enterprise 2016 LTSB
  • Microsoft Visual Studio 2017

コマンドライン引数の設定

  1. ツールバーの「プロジェクト(P)」から一番下の「プロパティ」を選択する.
    スクリーンショット 2020-06-12 16.56.00(2).png
  2. 左側の「構成プロパティ」以下の「デバッグ」を選択し,「コマンド引数」に入力したい引数を記入する.(画像では6と14の二つにしている.)
    スクリーンショット 2020-06-12 16.59.58(2).png
  3. 右下の「OK」を押す.(「適用」でも良い)

受け取った文字列型の値をint型に変換

  • std::stoiを使用し文字列型をint型に変換する.
  • std::stoi#include<string>#include<string>using namespace std;が無いとエラーが出ると思われる.
#include <iostream>
#include<string>
using namespace std;

int main(int argc, char* argv[])
{
	int atama, asi; //変数の宣言

	//引数を変数に格納.
	atama = std::stoi(argv[1]);
	asi = std::stoi(argv[2]);

	return 0;
}	

サンプルコード(鶴亀算)

#include <iostream>
#include<string>
using namespace std;

int main(int argc, char* argv[])
{
	int atama, asi, turu, kame; //変数の宣言

	//引数を変数に格納.
	atama = std::stoi(argv[1]);
	asi = std::stoi(argv[2]);

	//鶴と亀の数の計算
	turu = 2 * atama - asi / 2;
	kame = atama - turu;

	if (turu < 0 || kame < 0)
	{
		cout << "error" << std::endl;
	}
	else
	{
		cout << "鶴の数:" << turu << std::endl;
		cout << "亀の数:" << kame << std::endl;
	}
	return 0;
}
  • 引数
    • 6
    • 14
  • 実行結果
鶴の数:5
亀の数:1

この記事を書いた経緯・感想

  • コマンドライン引数を単にargv[1]などから受け取ると文字列型になっているのでint型に使用とPythonと同じようにint(argv[1])などとしたらエラーが出た.
  • 適当にC++の型変更方法を調べたら(int)argv[1]などというのをどこかで見かけて,やってみたら,エラーは出ないが,引数として受け取った値がおかしい値になった.
  • もう一度文字列からint型への変更方法を調べたらstd::stoiがあったのでこれを使ったらできた.

参考文献

0
0
1

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?