飛行船通信MLの主催者(few01)が気になった事を記録するWIKI

キーボードからの入力


前のプログラムの説明が終わっていませんでした。
前のプログラムは、以下の通り。青い文字がまだ説明していないところです。

#include <iostream>
#include <string>

int main () {
 std::cout << "名前を入れてください。" << std::endl;
 std::string name;
 std::cin >> name;
 std::cout << name << "さん、ですね。" << std::endl;

 return 0;
}


nameというのが文字列の変数だというのは前回言いました。
その変数に、キーボードからの入力を入れるのが、

std::cin >> name;

です。

文字列変数に別の文字列を入れる


プログラムを少しだけ書き換えてみました。

#include <iostream>
#include <string>

int main () {
 std::cout << "名前を入れてください。" << std::endl;
 std::string name;
 std::cin >> name;
 name = "じゅげむ";
 std::cout << name << "さん、ですね。" << std::endl;

 return 0;
}


これを実行すると、次のようになります。


名前を入れてください。
ふじお (return)
じゅげむさん、ですね。


せっかく名前を入れたのに、コンピュータはとんちんかんな答えを返しています。
それは name = "じゅげむ";というのをいれたからです。

name = "じゅげむ";

というのは、nameという文字列変数に「じゅげむ」という文字列を入れるという意味です。

ここで大事なのは、この=という記号ですね。
算数で=ってのは「等しい」という意味だと習ったと思います。
1+1=2
とかね。

ところが、C++では等しいという意味ではありません。=の左に右を入れる、という意味です。

別のプログラミング言語では:=などと書いて、=じゃないことを強調しているものもありますが、C++では=と簡単に書いてしまいます。

C++の考え方


ちょっとだけ寄り道をして、C++の背景にある考え方について書いてみます。

さっきの、=みたいに、簡単に書く、というのは、いかにもC++らしいやりかたです。というか、C言語の考え方です。C++はCの従兄弟みたいなものなので、C言語の書き方も多くそのまま使っています。

C言語は、すごくせっかちなプログラミング言語で、とにかく「短く!簡潔に!」書くのが良いっていうのがあります。たとえば、(double *)((*(a[0]->b)+c).d) とか、なんですかこれは!?というような書き方をしたりします。

C++には、Cにはない、ある別の考え方(オブジェクト指向)が入っていて、「短く書かなくてもいいじゃん、わかりやすければ」という考えが混じっていますが、C言語をもとにしているので、基本の考え方は、「短く!簡潔に!」です。だから、けっこう慣れるのには、時間がかかると思います。

name="じゅげむ";のつづき


もとに戻って、=の使い方をもうすこし。

=は右のものを左に入れるという意味でした。

name = "じゅげむ";

の右側を説明します。文字列は"(ダブルクォーテーション)で囲んて表します。

"じゅげむ"とか、"Hello, World!"とか、"こんにちは!"とかですね。"で囲まないとエラーになります。なぜかというとプログラムの一部と間違うからです。

次へ続く!

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

このWIKI内で検索

編集にはIDが必要です