Hello, World!

C++の基本構造と印字の仕方。コメントを入れるのは大事。
プログラム名、日付、バージョン名。 プログラムの機能、コンパイルの仕方などを書いておく。
何年も後でプログラムを見返したとき、必ず役に立つ。

Programme 1: Source code
    /*
       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);で与えて終了することにする。

Programme 1: Result
$ ./hello_world
Hello, World!

次は「コマンド」の引数を利用して、プログラムの動き方を変えてみる。

Programm 1.1: Source code
/*
  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はポインタをしまう配列になっている。

Progarmme 1.1: Result
    [引数が1つの場合]

    $ ./hello_world_v1 Japan
    Hello, Japan!

    [引数が無い場合]

    $ ./hello_world_v1 
    Hello, World!