C++によるプログラミング入門2
coutを使った出力

 こんにちは。前回は、プログラムについての一般的な話をしました。今回は、簡単なプログラムを書いてみます。
 はじめてプログラムを書く人は、市販の業務用ソフトやゲームソフトを想像するかもしれませんが、売り物になるようなプログラムを書くことは並大抵ではありません。まず、はじめは、じみ〜で、おもしろくないものから始めなくてはなりません。そのうち楽しくなると思いますから、少しがんばってみましょう。

 この業界の人は大抵ある有名なプログラムからはじめます。私たちもそれにならいましょう。おそらく単独では世界でもっとも有名なプログラム(ただし、バリエーションは少しあります)です。

//hello.cpp
#include <iostream>
using namespace std;

int main()
{
    cout << "hello" << endl;
}

 もし、すでにC++のコンパイラ(処理系)を持っているなら、上のソースコードを入力(すべて半角英数字です)し、コンパイル+リンクし、実行してみてください(endlの最後の「l」は小文字のエルです)。(Borland C++とVisual C++ .NETの場合の簡単な説明は、付録1を見てください。)実行結果は、画面に「hello」と打ち出されるだけです。なんと、つまらない、、、と思う、思わないは個人の自由ですが、普通はこんなプログラムから入門していくのです。(ちなみに、現在、現役ばりばりのプログラマの多くも、はじめは、こんなプログラムのお世話になっているはずです。)

Fig.1 hello.cppをコンパイル+リンクして作ったhello.exeの実行画面


 プログラムの説明をします。

 1行目は、「//」ではじまっていますね。「//」ではじまる部分は、行末までがコメントと呼ばれ、プログラムの実行とはなんの関係もないものです。(当然、コメントは削除しても、プログラムの動作に影響はありません。)プログラム中には、このような形でコメントを書くことができるのです。
 ここではプログラムの名前hello.cppをコメントとして書いただけです。(注:私の使っている処理系(Borland C++ 、Visual C++)ではC++のソースは「ファイル名.cpp」とします。ここでcppが拡張子と呼ばれるものです。皆さんは自分の処理系が要求する拡張子をつけてください。)このタイプのコメントは「//」ではじまっているので、ほかの行でも「//」を見つけたらこれは、そのあとに書いてあることはただのコメントだと思ってください。

 2行目「#include <iostream>」は、「標準的な入出力に関して必要な情報を取って来い」という程度の意味です。プログラムによっては標準的な入出力をしないものもあります。しかし、たいていは標準の入出力をするので、この行は基本的にいつも書くことになります。

 3行目「using namespace std;」は、「プログラム中でいろいろなものの名前を簡単に書くため」と思っておいてください。そう言われてもなんのことかわからないと思いますが、とりあえず、「おまじない」と思っておくのがよいと思います。詳しい意味は次回に説明します。とにかく、最初は、「C++のプログラムには(普通)このような行(2行目3行目)が頭にある」と思っておいてください。

 4行目は空行ですね。見やすさのために1行空けたのです。

 5行目の「int main()」はこれからプログラムの「中心部分(本体)」が始まるという「合図」です。C++のプログラムの中心部分はいつもここから始まります。ここはそういうものなんだと、理解してください。この「int main()」が支配している範囲は「中カッコ」で示されます。それが6行目の「」と8行目の「」なのです。

 したがって、「プログラム中心部分の中身」は7行目の「cout << "hello" << endl;」だけなのです。coutの前が少しあいているのは見やすさのためです。今回は、この行の意味がわかればよいのです。もう少しですね。
ということで、7行目を説明しましょう。実は、coutは画面を表わし、<<は「そこへ押し込め」などの意味です。したがって、

 cout << "文字列"

と書くと、「文字列を画面に押し込め」つまり「文字列を画面に出力せよ」という意味になるのです。
 また、endlは「改行」を表わし、「;」は「命令の終わり」を意味します。そのため、

 cout << ... << endl;

とすると、「出力の最後に画面に改行を押し込む」つまり「最後に改行する」という意味になるのです。
 以上をまとめると、「cout << "hello" << endl;」は、「画面にhelloと出力して、改行せよ」という命令になるのです。Fig.1を見てください。実際、そうなっていますね。

 はじめのうちは、あまり「どうしてだろう」と悩まずに多くのことを受け入れてください。そのうちいろいろなことがわかってきます。まず、上のプログラムをなんとか実行してみてください。コンパイル+リンク(ビルドなどということもあります。以下ではかんたんのため「コンパイル」とだけいうことにしますが、これはいつもコンパイル+リンクのことと思ってください。)時にエラーメッセージがでたら、おそらくタイプミスか何かでしょう。例えば、初心者は、よく「;」を忘れます。
 エラーが出たらなんとか直してコンパイルしてください。うまくいったら実行です。「hello」とでましたか?もし、うまくいったら、(あまりおもしろいプログラムではありませんが)自分で少しだけ改造したプログラムを書いてみてください。

 例えば、こんなのが出来るでしょう。

#include <iostream>
using namespace std;

int main()
{
    cout << "俺様はプログラマの卵だ!" << endl;
}

 出力する文字列を変えただけです。実際、実行すると「俺様はプログラマの卵だ!」と出力するはずです。ただし、日本語は「俺様はプログラマの卵だ!」だけで、他の部分は半角英数字で入力するのを忘れないでください。特に「"」などを全角文字で書いたりしないように気をつけてください。また、日本語の空白(全角の空白)を「""」の外に書くと、コンパイル時にエラーになります。しかし、これは普通見えない文字なので、初心者は、とても悩むことになります。これも気をつけてください。

 以上は、文字を出力するプログラムでしたが、数(字)も同様にできます。しかし、数だけを出力するときには「"」はいりません。この場合、数字はかならず半角で打ってください。また、次のように

//nenrei.cpp
#include <iostream>
using namespace std;

int main()
{
    cout << "私は" << 43 << "才です。" << endl;
}

<<をいくつもならべて使うこともできます。こうすると、「私は43才です。」と出力するプログラムになります(旧作のときは37才だったのに)。

Fig.2 nenrei.exeの実行

 今日はこの辺にしましょう。それではまた。


目次のページ

前のページ  次のページ