環境
- Windows 10 Enterprise 2016 LTSB
- Microsoft Visual Studio 2017
コマンドライン引数の設定
- ツールバーの「プロジェクト(P)」から一番下の「プロパティ」を選択する.
- 左側の「構成プロパティ」以下の「デバッグ」を選択し,「コマンド引数」に入力したい引数を記入する.(画像では6と14の二つにしている.)
- 右下の「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
があったのでこれを使ったらできた.