[C++] cinで複数の値・文字列を入力する方法
C++でcin
を使用して複数の値や文字列を入力するには、スペースや改行で区切られた入力を順に受け取ることができます。
例えば、cin >> a >> b;
のように記述すると、スペースや改行で区切られた2つの値をそれぞれ変数a
とb
に格納します。
文字列の場合も同様にcin >> str;
で単語単位の入力が可能です。
複数行や空白を含む文字列を扱う場合はgetline(cin, str);
を使用します。
複数の数値を入力する方法
C++では、cin
を使用して複数の数値を一度に入力することができます。
これにより、ユーザーからの入力を効率的に処理することが可能です。
以下に、複数の整数を入力する基本的な方法を示します。
#include <iostream>
using namespace std;
int main() {
int a, b, c; // 3つの整数を格納する変数
cout << "3つの整数を入力してください: "; // ユーザーへのメッセージ
cin >> a >> b >> c; // 複数の整数を一度に入力
cout << "入力された整数は: " << a << ", " << b << ", " << c << endl; // 入力結果の表示
return 0;
}
入力例として、ユーザーが 5 10 15
と入力した場合、出力は以下のようになります。
入力された整数は: 5, 10, 15
このように、cin
を使うことで、複数の値を簡単に取得することができます。
各値は空白で区切って入力する必要があります。
文字列の入力方法
C++では、cin
を使用して文字列を入力することも可能です。
文字列を入力する際には、std::string
型を使用します。
以下に、ユーザーから複数の文字列を入力する方法を示します。
#include <iostream>
#include <string> // string型を使用するために必要
using namespace std;
int main() {
string firstName, lastName; // 名前を格納するための変数
cout << "姓と名をスペースで区切って入力してください: "; // ユーザーへのメッセージ
cin >> lastName >> firstName; // 複数の文字列を一度に入力
cout << "入力された名前は: " << lastName << " " << firstName << endl; // 入力結果の表示
return 0;
}
このコードでは、ユーザーが「山田 太郎」と入力した場合、出力は以下のようになります。
入力された名前は: 山田 太郎
cin
を使用する際、文字列は空白で区切られた部分までしか読み込まれないため、姓と名をスペースで区切って入力する必要があります。
もし、空白を含む文字列を入力したい場合は、getline
関数を使用することをお勧めします。
入力データの型変換
C++では、cin
を使用して異なるデータ型の値を入力することができますが、入力されたデータが期待する型と異なる場合、型変換が必要になることがあります。
以下に、整数を入力し、浮動小数点数に変換する例を示します。
#include <iostream>
using namespace std;
int main() {
int integerValue; // 整数を格納する変数
float floatValue; // 浮動小数点数を格納する変数
cout << "整数を入力してください: "; // ユーザーへのメッセージ
cin >> integerValue; // 整数を入力
// 整数を浮動小数点数に変換
floatValue = static_cast<float>(integerValue);
cout << "入力された整数: " << integerValue << endl; // 入力結果の表示
cout << "変換された浮動小数点数: " << floatValue << endl; // 変換結果の表示
return 0;
}
このコードでは、ユーザーが 10
と入力した場合、出力は以下のようになります。
入力された整数: 10
変換された浮動小数点数: 10
static_cast
を使用することで、整数を浮動小数点数に安全に変換することができます。
型変換は、異なるデータ型間での計算や処理を行う際に非常に重要です。
特に、整数から浮動小数点数への変換は、精度を保つために注意が必要です。
応用的な入力方法
C++では、基本的な入力方法に加えて、より複雑なデータ構造や形式の入力を行うことも可能です。
ここでは、配列や構造体を使用した応用的な入力方法を紹介します。
配列への入力
配列を使用して複数の値を一度に入力する方法を示します。
以下の例では、整数の配列に値を入力します。
#include <iostream>
using namespace std;
int main() {
const int size = 5; // 配列のサイズ
int numbers[size]; // 整数の配列
cout << size << "つの整数を入力してください: "; // ユーザーへのメッセージ
for (int i = 0; i < size; i++) {
cin >> numbers[i]; // 配列に値を入力
}
cout << "入力された整数は: ";
for (int i = 0; i < size; i++) {
cout << numbers[i] << " "; // 入力結果の表示
}
cout << endl;
return 0;
}
このコードでは、ユーザーが 1 2 3 4 5
と入力した場合、出力は以下のようになります。
入力された整数は: 1 2 3 4 5
構造体への入力
構造体を使用して、複数の関連するデータをまとめて入力する方法もあります。
以下の例では、学生の情報を格納する構造体を定義し、ユーザーからの入力を受け取ります。
#include <iostream>
#include <string> // string型を使用するために必要
using namespace std;
// 学生情報を格納する構造体
struct Student {
string name; // 名前
int age; // 年齢
};
int main() {
Student student; // Student型の変数
cout << "学生の名前と年齢を入力してください (例: 太郎 20): "; // ユーザーへのメッセージ
cin >> student.name >> student.age; // 構造体に値を入力
cout << "入力された学生情報: " << student.name << ", " << student.age << "歳" << endl; // 入力結果の表示
return 0;
}
このコードでは、ユーザーが「太郎 20」と入力した場合、出力は以下のようになります。
入力された学生情報: 太郎, 20歳
これらの応用的な入力方法を使用することで、より複雑なデータを効率的に処理することが可能になります。
配列や構造体を活用することで、プログラムの柔軟性と可読性が向上します。
まとめ
この記事では、C++における複数の値や文字列の入力方法、さらに入力データの型変換や応用的な入力方法について解説しました。
これにより、基本的な入力操作から、配列や構造体を用いた複雑なデータの取り扱いまで、幅広い入力技術を習得することができます。
今後は、これらの技術を活用して、より効率的で柔軟なプログラムを作成してみてください。