コマンドライン引数で受け取ればいいです。
main関数の引数の int argc, int char* argv[] っていうやつで。
argc が 実行ファイル名( 場合によっては絶対パスだったりする。 ) と 引数の 和になっていまして、
(以下はコードではなく、イメージ。 )
argv[0] = (実行ファイルの)ファイルパス
argv[1] = 引数1
argv[2] = 引数2
...
となっています。
で、ttyp03さんの回答にあるコード、なんか不思議だなぁと思っていたら、
第三引数がある!
なんだろ?と思って「int main( int argc, char *argv[], char *envp[] )」で検索してみると、
envp - main関数3つ目の引数
がヒットした。
これによると、環境変数が格納されるらしいです。
ですが、今回は使わないので
int main( int argc, char *argv[] )
でいいと思う。
また、今回はただ単に表示するだけのようなので問題ないかもしれませんが、
引き受けたコマンドライン引数はすべて文字列になっています。
なので、どうしても計算するとかで数値が欲しいなら atoi関数 ( C++なら std::atoi関数? ) 等のような変換用の関数で変換して計算する...
っていう感じになるかと。( もしかすると C++11以降とかみたいに条件があるかもしれませんが。 )
あるいは、ほかの方法として、
Windows APIとかのようなAPIでコマンドライン引数を取得するとか。
ただし、少なくとも Windows APIの場合は 一列の文字列になっていたり、wchar_t みたいな感じで若干扱いにくかったりするし、
Windows APIなら Windows上でしか使えない。
2017/11/21 08:59