まだ何もないWebサイトなのに大勢の方に訪問していただきありがとうございます。また、旧サイトのコンテンツ目当てに来られた方にはご迷惑をおかけしています。必要な方はアーカイブを参照していただければ幸いです。
さて、それでは本題に入ります。
プログラミング言語は何であれ、最初の一歩として学ぶプログラムはHello, world!と相場が決まっています。古くはB、そしてCのソースコードに始まって、最近の軽量言語に至るまでおおむねこの流儀が継承されているようです。
C++でもHello, world!が入門書に出てくることは普通にありました。
0 1 2 3 4 5 6 7 8 |
#include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; } |
これはこれでかまわないのですが、その後の展開を考えると、生の文字列を扱うのはいろいろと面倒です。というのも、Javaにせよ、C#にせよ、諸々の軽量言語にせよ、文字列リテラルの方は文字列型なのに対して、C++の文字列リテラルはcharの配列型なので、以降の説明が面倒なのです。
説明がC++14以降を前提にしているなら、Hello, world!の段階から次のようにしてしまえば、以降はかなり話が簡単になります。
0 1 2 3 4 5 6 7 8 9 |
#include <iostream> #include <string> using namespace std; int main() { cout << "Hello, world!"s << endl; } |
これであれば文字列の扱いはすべてstring型だということにできます。もちろん、学習が進んでいくにつれて、より低水準な部分の解説も必要になってくるでしょうが、最初のとっかかりではこれで十分な気がします。
これなら文字列の入力も
0 1 2 3 4 5 6 7 8 9 10 |
#include <iostream> #include <string> using namespace std; int main() { string str; cin >> str; } |
で済みます。
1行丸ごと読み込むなら、getline関数を使えばOKです。文字列の長さを求めるなら、”Hello, world!”s.length() で十分ですし、文字列を連結するなら “Hello, “s + “world!”s で大丈夫です。
このように、モダンなC++の機能を使えば簡単にいろいろなことができるようになります。GUIなんかはプラットフォーム依存になりますが、様々なフレームワークが存在する他の言語も大して事情が変わらないと思います。
私がC++を最初に学んだころとは違い、今は本当に便利になったものです。
今回の記事は以前別のブログに掲載した内容の焼き直しになります。今後は新しいコンテンツだけでなく、こうした焼き直しの記事も積極的に投稿していこうと考えています。とくに旧サイトで人気の高かった記事については早めに焼き直していきたいと考えています。