はじめに
今回は標準入力について解説していきたいと思います。
覚えるのはたった数文字のコードとちょっとした知識だけなので短めです。
サクッとやってしまいましょう!
標準入力って?
標準入力とは簡単に言えばキーボードからの入力のことで、プログラムでは次のように書きます。
std::cin >> 変数;
もう少し詳しく説明的な話をすると、ここでは標準入力オブジェクト「std::cin」に入力されたデータを入力演算子「>>」を使って変数に格納しています。
データ型に気をつけよう!
まずは入力したデータをそのまま表示してみましょう!
次のプログラムを実行して、何らかの整数値を入力してエンターしてください。
#include<iostream> int main(){ int a; //int型変数aの宣言 std::cin >> a; //標準入力から変数aに格納 std::cout << "入力値は" << a << std::endl; //標準出力 return 0; }
どうでしょう?うまく動きましたか?
エンターした後に入力した整数値と同じものが出力されて、例えば3を入力した場合次のようになっているはずです。
% 3 % 入力値は3
ここで大切なのが入力するデータが整数値であることです。
変数は一つのデータ型しか扱えず、最初の宣言と同時にそのデータ型を決めると前の記事で述べましたが、それは入力を受け取る際にも同じです。
今回のプログラムの場合、「int型」の変数「a」を入力されたデータの格納先に指定しているのですから「int型」のデータ以外を入力してもうまく格納できないのです。
一度に複数のデータを入力させる?
標準入力では次のように入力演算子によって変数を繋げることで、一度に複数のデータを入力させることができます。
std::cin >> 変数 >> 変数 >> ... >> 変数;
この時、入力はスペース「 」によって間を入れて同時に入力するか、データ毎にエンターキーを押して一つ一つ入力するかのどちらかになります。
具体的には次のプログラムを使って説明します。
#include<iostream> int main(){ int a,b; //int型変数a,bの宣言 std::cin >> a >> b; //標準入力からデータを変数a,bに順に格納 std::cout << "合計は" << a+b << std::endl; //標準出力 return 0; }
ここでは最初に「int型」の変数「a」にデータを格納し、次に「int型」の変数「b」にデータを格納しています。
プログラムを実行して何らかの整数値を二つ入力してください。例は変数「a」に「4」、変数「b」に「3」を入力します。
上にあげた二通りの入力方法による結果を以下に示します。
データを一つ一つ入力する場合。
% 4 % 3 % 合計は7
スペースによって間を入れて同時に入力する場合。
% 4 3 % 合計は7
どちらにしても結果は同じなので実行時に利用者が決めればいいのですが、この仕様は理解しておきましょう!
複数の種類のデータでも同じ!
変数のデータ型によって格納できるかどうかが決まるので、複数のデータ型の変数を一度に入力させることももちろん可能です。
次のプログラムで確認してみましょう!
#include<iostream> int main(){ int a; //int型変数aの宣言 char b; //char型変数bの宣言 std::cin >> a >> b; //標準入力から変数a,bに順に格納 std::cout << "a=" << a << "\nb=" << b << std::endl; //標準出力 return 0; }
ここでは最初に「int型」の変数「a」に格納し、次に「char型」の変数「b」に格納しているので、入力は「int型」、「char型」の順に行われなければいけないことに注意してください。
例として、「1」「a」という二つのデータを入力すると次のようになります。
% 1 a % a=1 % b=a
ここまでの内容が理解できていれば、標準入力はほとんど大丈夫です!
演習問題
今回も最後に演習問題を用意しました。
簡単なので、ぜひ自力で解いていってください!
演習問題1
整数値を二つ入力させ、加算結果と乗算結果をそれぞれ出力するプログラムを作成せよ。
例:入力が「1 2」の場合
% 1 2 % 加算結果3 % 乗算結果2
演習問題2
整数値と文字を一つずつ入力させ、「文字 = 整数値」と表示せよ。
例:入力が「1 a」の場合
% 1 a % 結果 a = 1
演習問題1解答
#include<iostream> int main(){ int a,b; //int型変数a,bの宣言 std::cout << "二つの整数値を入力してください(ex:1 2)" << std::endl; std::cin >> a >> b; //標準入力から変数a,bに格納 std::cout << "加算結果" << a+b << std::endl; //標準出力 std::cout << "乗算結果" << a*b << std::endl; //標準出力 return 0; }
演習問題2解答
#include<iostream> int main(){ int a; //int型変数aの宣言 char b; //char型変数bの宣言 std::cout << "整数値と文字を入力してください(ex:1 a)" << std::endl; std::cin >> a >> b; //標準入力から変数a,bに格納 std::cout << "結果 " << b << " = " << a << std::endl; //標準出力 return 0; }
コメント