標準入出力

[C++] cinで複数の値・文字列を入力する方法

C++でcinを使用して複数の値や文字列を入力するには、スペースや改行で区切られた入力を順に受け取ることができます。

例えば、cin >> a >> b;のように記述すると、スペースや改行で区切られた2つの値をそれぞれ変数abに格納します。

文字列の場合も同様に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++における複数の値や文字列の入力方法、さらに入力データの型変換や応用的な入力方法について解説しました。

これにより、基本的な入力操作から、配列や構造体を用いた複雑なデータの取り扱いまで、幅広い入力技術を習得することができます。

今後は、これらの技術を活用して、より効率的で柔軟なプログラムを作成してみてください。

関連記事

Back to top button