【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の後に判定処理を入れれば良いのです。 用途に応じて使い分けましょう。




