標準出力ストリーム・標準入力ストリームに関する記事です。
スコープ解決演算子や名前空間についても解説しています。
標準出力ストリーム
【std::cout】は標準出力ストリームと呼ばれ、変数や文字列を標準出力へ出力する際に使用されます。
標準出力は、デフォルトではコンソール画面に表示されます。
ちなみに、【cout】は【シーアウト】と読みます。
使い方
標準出力ストリームを使用する際は、<iostream>の組み込みが必要です。
複数の変数や文字列を出力したい場合は、【<<】を複数回使用します。
また、【endl】を記述することで、改行を行うことが出来ます。
include <iostream>
std::cout << ○○○ << std::endl
std::cout << ○○○ << ○○○ << std::endl
コーディング例①
#include <iostream>
int main() {
std::cout << 123 << std::endl;
std::cout << 123 << 456 << std::endl;
std::cout << "のんびり丸です。" << std::endl;
return 0;
}
出力
123
123456
のんびり丸です。
〇文字で表示
空白を含めて○文字で表示したい場合は、【width】を使用します。
【width】は、出力するたびに記述する必要があります。
std::cout.witdh(文字数);
コーディング例①
#include <iostream>
int main() {
std::cout.width(5);
std::cout << 123 << std::endl;
return 0;
}
出力
123
空白を〇で埋める
空白を○で埋めたい場合は、【fill】を使用します。
【fill】は、出力するたびに記述する必要があります。
std::cout.fill(〇);
コーディング例①
#include <iostream>
int main() {
std::cout.width(5);
std::cout.fill('0');
std::cout << 123 << std::endl;
return 0;
}
出力
00123
小数点の桁数
小数点の桁数を指定したい場合は、【precision】を使用します。
表示されない桁は、四捨五入されます。
また、【precision】は、出力するたびに記述する必要があります。
std::cout.precision(〇);
コーディング例①
#include <iostream>
int main() {
std::cout.precision(4);
std::cout << 123.45 << std::endl;
return 0;
}
出力
123.5
標準入力ストリーム
【std::cin】は標準入力ストリームと呼ばれ、入力データを受け取る際に使用されます。
標準入力は、デフォルトではキーボードです。
ちなみに、【cin】は【シーイン】と読みます。
使い方
標準入力ストリームを使用する際は、<iostream>の組み込みが必要です。
【>>】の右に記述した変数に、キーボードで入力した値が格納されます。
include <iostream>
std::cin >> 変数;
コーディング例①
#include <iostream>
int main() {
int A;
std::cout << "キーボードで数値を入力してください。" << std::endl;
std::cin >> A;
std::cout << A << std::endl;
return 0;
}
出力
キーボードで数値を入力してください。
5
5
上記の例では、『5』をキーボードで入力しています。
コーディング例②
#include <iostream>
int main() {
char A[50];
std::cout << "キーボードで文字列を入力してください。" << std::endl;
std::cin >> A;
std::cout << A << std::endl;
return 0;
}
出力
キーボードで文字列を入力してください。
のんびり丸です。
のんびり丸です。
上記の例では、『のんびり丸です。』をキーボードで入力しています。
getline
通常の【std::cin】の場合、文字列の中に半角スペースがあると、半角スペース以降は変数に格納されません。
半角スペースを含んだ値を変数に格納したい場合は、【getline】を使用します。
コーディング例①
#include <iostream>
int main() {
char A[50];
std::cout << "キーボードで文字列を入力してください。" << std::endl;
std::cin >> A;
std::cout << A << std::endl;
return 0;
}
出力
キーボードで文字列を入力してください。
あいうえお かきくけこ
あいうえお
上記の例では、『あいうえお かきくけこ』をキーボードで入力しています。
コーディング例②
#include <iostream>
int main() {
char A[50];
std::cout << "キーボードで文字列を入力してください。" << std::endl;
std::cin.getline(A, sizeof(A));
std::cout << A << std::endl;
return 0;
}
出力
キーボードで文字列を入力してください。
あいうえお かきくけこ
あいうえお かきくけこ
上記の例では、『あいうえお かきくけこ』をキーボードで入力しています。
スコープ解決演算子
スコープ解決演算子【::】は、特定のスコープ内の変数・関数・クラス等にアクセスする際に使用されます。
例えば、ローカル変数とグローバル変数の名称が同じ場合は、ローカル変数が優先されて呼び出されます。
グローバル変数を優先して呼び出したい場合には、スコープ解決演算子【::】を使用します。
::変数
また、スコープ解決演算子の前にクラス名や名前空間を付けると、そのメンバを優先して呼び出すことが出来ます。
クラス名::メンバ
名前空間::メンバ
コーディング例①
#include <iostream>
// グローバル変数
int value = 10;
// クラスの定義
class MyClass {
public:
MyClass();
int value;
};
MyClass::MyClass() {
int value = 100; // ローカル変数
MyClass::value = 50; // メンバ変数
std::cout << value << std::endl;
std::cout << MyClass::value << std::endl;
std::cout << ::value << std::endl;
}
int main() {
MyClass ClassA;
return 0;
}
出力
100
50
10
名前空間
同じ名称の変数・関数・クラス等を設定すると、リンクエラーが発生します。
同じ名称を用いたい場合には、名前空間を使用します。
namespace 名前空間名{
// 変数や関数
}
名前空間を設定した変数・関数・クラス等を呼び出す際には、スコープ演算子を使用します。
コーディング例①
#include <iostream>
// 名前空間の設定
namespace A {
int value = 100;
}
namespace B {
int value = 200;
}
int main() {
std::cout << A::value << std::endl;
std::cout << B::value << std::endl;
return 0;
}
出力
100
200
using namespace
名前空間を使用する際に、その都度スコープ演算子を記述するのが面倒な場合には、【using namespace】を設定します。
頻繁に使用する名前空間に利用すると効果的ですね。
標準入力ストリーム・標準出力ストリームに関しても、【using namespace】を利用することが出来ます。
using namespace 名前空間名;
コーディング例①
#include <iostream>
// 名前空間の設定
namespace A {
int value = 100;
}
namespace B {
int value = 200;
}
// using namespace
using namespace std;
using namespace A;
int main() {
cout << value << endl;
cout << B::value << endl;
return 0;
}
出力
100
200
