【C++】cinとcoutの複数入出力についてわかりやすく解説
- 作成日:2024/10/08
C++言語の複数の変数を入出力する方法について解説します。 ちなみに、cin(シーイン)、cout(シーアウト)はC++ので入出力を扱うもので、 C言語でいうscanf,printfと同じような動作をします。
複数の入出力
以下のようにすることで、変数a,bにキーボードから入力した値をそれぞれ格納できます。
#include <iostream>
using namespace std;
int main() {
double a;
double b;
//入力
cin >> a >> b;
//出力
cout << a << "\n" << b;
return 0;
}
例えば、コンソールで11と入力しenter押下、その後22と入力してenter押下すると以下のように出力されます。
11
22
この例ではenterが区切りとなっていますが、数値以外の入力ならばそれが区切りになります。
例えば、「11空白22」または「11,22」の後にenter押下でも、 同様の結果になります。変数a,bには11と22が格納されます。
もっと詳しく
今度は変数と文字列の入力を例に、より詳しく見ていきましょう。
#include <iostream>
using namespace std;
int main() {
double a;
double b;
char moji;
//入力
cin >> a >> moji >> b;
//出力
cout << a << "\n" moji << "\n" << b;
return 0;
}
例えば、コンソールで「11+22」と入力しenter押下すると以下のように出力されます。
11
+
22
わかりやすく書くと、enter押下時したら、コンピュータはまず入力されたもの(11+22)のうち、 最初の数値の部分までを変数aに入れます。どこまで数値と見なすかは文字が出現するまでです。
次に文字を変数mojiに入れます。今回はchar型なのでコンピュータは1文字だけを文字と見なします。
最後に残りの部分を変数bに入れます。
ちなみに、もし変数mojiがstring型にすると+22を文字列と見なし変数mojiに入れます。よって、bには値を入れません。
省略しない書き方
先ほどの例は以下のように、 cinやcoutを1つずつ書いても同じ結果になります。
#include <iostream>
using namespace std;
int main() {
double a;
double b;
char moji;
//入力
cin >> a;
cin >> moji;
cin >> b;
//出力
cout << a;
cout << "\n";
cout << moji;
cout << "\n";
cout << b;
return 0;
}
この書き方のほうが手間ですが、各変数の入力値をチェックしたい場合などは 1つ目のcinの後に判定処理を入れれば良いのです。 用途に応じて使い分けましょう。