>> C++入門トップに戻る

C++の文字列出力について

今回はC++の文字列出力について説明します。
C言語ではprintf関数やputs関数を使って、文字列を出力していましたが、
C++にも専用の関数があります。
次のコードを見てください。

#include <string>
#include <iostream>

int main(void)
{
	char test[30];

	std::cin >> test;

	printf("%s\n",test);

	std::cout << test << std::endl;
	
	return 0;
}

これを実行すると、文字の入力を求められるので、入力するとその文字を二回表示します。

このコードの中の、

std::cinが入力関数で、std::coutが出力関数です。
また、>>が入力演算子、<<が出力演算子と言います。

この関数を使う為には、iostreamをインクルードする必要があります(.hは不要)
ではこのcinの前についてる、std::は何でしょうか?
stdとは名前空間のことで、
グループをまとめるための空間のようなものです。
C++では、グローバル変数やグローバル関数は同じ名前で定義することが出来ません。
ですが、この名前空間で囲んでやると、その中は限定された領域になるので、
他の場所でも同じ名前の変数や関数を定義できるようになります。

で、今回はこのcinという関数がstdという名前空間に属していました。
名前空間に属している関数は、コロンを二つ::書いてその後に関数名を書くだけでアクセスできます。
そのcinと関数と一緒に、入力演算子>>を書いて、右側に代入する変数を書いてあげます。
これでtest変数にユーザが入力した値を代入させることができます。

次にcoutですが、これも同じstd名前空間に属しているので、前にstd::が付いています。
で、今度は出力するので、出力演算子<<を使います。
これを使って右側に文字を出力させたい変数を書くと、printfのように文字を出力することができます。
最後にstd::endlと書いてありますが、これは改行を表すものです。
これを書くだけで改行を代入することができます。もちろん出力演算子も必要です。

これがC++の文字列出力の方法です。
気になったかたもいるかと思いますが、std::って毎回書くの面倒ですよね?
これを解消する方法があります。
グローバル領域に、

using namespace std;

と書くだけで、std::cinと書いていた関数を、cinと書くだけで大丈夫になります。
同じくcoutもendlも一緒で書く必要はありません。
もし他の関数で、名前空間名を書くのが面倒であれば、
using namespace 名前空間名;
と書けば省略できるので、是非覚えておきましょう。

今回はここまで。
次回はstring型の説明をします。


>> 【string型】に進む
>> C++入門トップに戻る