Visual Studioでint型のコマンドライン引数を受け取る方法(C++)
環境
- 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
があったのでこれを使ったらできた.
参考文献
- ツールバーの「プロジェクト(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
があったのでこれを使ったらできた.
参考文献
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
があったのでこれを使ったらできた.
参考文献
argv[1]
などから受け取ると文字列型になっているのでint型に使用とPythonと同じようにint(argv[1])
などとしたらエラーが出た.(int)argv[1]
などというのをどこかで見かけて,やってみたら,エラーは出ないが,引数として受け取った値がおかしい値になった.std::stoi
があったのでこれを使ったらできた.Author And Source
この問題について(Visual Studioでint型のコマンドライン引数を受け取る方法(C++)), 我々は、より多くの情報をここで見つけました https://qiita.com/sasakura-jp/items/4fc8d378de485dca684e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .