C++の基本構造と印字の仕方。コメントを入れるのは大事。
プログラム名、日付、バージョン名。
プログラムの機能、コンパイルの仕方などを書いておく。
何年も後でプログラムを見返したとき、必ず役に立つ。
/* Programme 1: Hello, World! Jun. 13, 2015 (m.oi@isc.senshu-u.ac.jp) Ver. 0.0 Function: Print "Hello, World!" on screen. Compile: g++ -o hello_world hello_world.cc */ #include <iostream> int main(int args, char *argv[]){ std::cout << "Hello, World!" << std::endl; return(0); }
C++では、結果などの印字にcoutを使う。
最近ではnamespaceとかいう概念を適用しているためか、
std::coutと書く必要がある。
main()関数をint型で定義したので、正常に終了したときの 返し値0をreturn(0);で与えて終了することにする。
$ ./hello_world Hello, World!
次は「コマンド」の引数を利用して、プログラムの動き方を変えてみる。
/* Programme 1.1: Hello, World! Jun. 13, 2015 (m.oi@isc.senshu-u.ac.jp) Ver. 1.0 Function: Print "Hello, World!" on screen, allowing arguments. Compile: g++ -o hello_world_v1 hello_world_v1.0.cc */ #include <iostream> int main(int args, char *argv[]){ if(args <= 1) std::cout << "Hello, World!" << std::endl; else std::cout << "Hello, " << argv[1] << "!" << std::endl; return(0); }
引数の渡され方(1): int argsには引数の数が入る。コマンド自体も引数と考えるので、 argsの最小値は1。したがって、プログラム中では、引数が"0"の場合は「デフォルト」 の"Hello, World!"が印字されるような条件文が与えられている。 一方、下の例のように、hello_world_v1 Japanという形で (実質的な)引数を1つ入力すると、args=2となる。
引数の渡され方(2): 引数は文字列なので、 char *型の配列で格納する。 一つ目の引数はargv[1]に入る。(コマンド自体はargv[0]に入る。) 二つ目の引数はargv[2]に入る。引数の文字数が幾つあるかは予測がつかないので、 ポインタが指定される。つまりargvはポインタをしまう配列になっている。
[引数が1つの場合] $ ./hello_world_v1 Japan Hello, Japan! [引数が無い場合] $ ./hello_world_v1 Hello, World!