今度は入力ストリームを見ていく. これは標準入力 (通常はキーボード) からの入力を受け取る. 具体的には次のように記述する.
cin.cpp
1 2 3 4 5 6 7 8 9 10 | #include <iostream>
int main(){
int num;
std::cin >> num;
std::cout << num << "\n";
std::cout << num << std::endl;
}
|
cin.cpp の実行結果は:
[wtopia cpp.lang]$ ./cin
99.2
99
99
[wtopia cpp.lang]$ ./cin
ab
0
0
[wtopia cpp.lang]$ ./cin
99
99
99
std::cout と同じく, std::cin もデータの型を問わない, 入力先を連結できる. 次のコードは全て有効.
cin2.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <iostream>
int main(){
int num1, num2;
char str[80];
std::cin >> str; // 文字列を入力
std::cin >> num1 >> num2;
std::cout << str << std::endl;
std::cout << num1 << std::endl;
std::cout << num2 << std::endl;
}
|
cin2.cpp の実行結果は:
[wtopia cpp.lang]$ ./cin2
wtopia 10 20
wtopia
10
20
[wtopia cpp.lang]$ ./cin2
wtopia
10
20
wtopia
10
20
C++ 言語では, std::cin を使うときにも, 制限をかけるべき, 次のプログラムは, 入力された文字数を 4 文字以内に制限している.
cin3.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <iostream>
#include <iomanip> // for setw()
int main(){
char str[20];
std::cout << "4 文字以内の文字列を入力してください: \n";
std::cin >> std::setw(4) >> str; // str[20] に設定しても関係ない
std::cout << str << std::endl;
return 0;
}
|
cin3.cpp の実行結果は:
[wtopia cpp.lang]$ ./cin3
4 文字以内の文字列を入力してください:
wtopia
wto
wtopia を入力したのに, wto だけ出力された. すなわち, std::setw(4) が有効となっている.