C++で複数行の文字列を入力する方法


方法1: getline関数を使用する方法

#include <iostream>
#include <string>
int main() {
    std::string input;
    std::string text;
    while (std::getline(std::cin, input)) {
        if (input.empty()) {
            break;  // 空行が入力されたら終了
        }
        text += input + "\n";  // 入力を改行を含めて結合
    }
    std::cout << "入力されたテキスト:\n" << text << std::endl;
    return 0;
}

この方法では、std::getline関数を使用してユーザーからの入力を1行ずつ読み取ります。空行が入力されるまで、入力された各行を改行を含めて結合していきます。

方法2: Ctrl+Z (Windows) または Ctrl+D (Mac/Linux) を使用する方法

#include <iostream>
#include <string>
int main() {
    std::string text;
    std::string line;
    while (std::cin) {
        std::getline(std::cin, line);
        text += line + "\n";  // 入力を改行を含めて結合
    }
    std::cout << "入力されたテキスト:\n" << text << std::endl;
    return 0;
}

この方法では、Ctrl+Z (Windows) または Ctrl+D (Mac/Linux) を入力することで入力の終了を示します。各行を改行を含めて結合していきます。

方法3: テキストの終了条件を指定する方法

#include <iostream>
#include <string>
int main() {
    std::string text;
    std::string line;
    while (true) {
        std::getline(std::cin, line);
        if (line == "END") {
            break;  // "END"が入力されたら終了
        }
        text += line + "\n";  // 入力を改行を含めて結合
    }
    std::cout << "入力されたテキスト:\n" << text << std::endl;
    return 0;
}

この方法では、特定の文字列(ここでは"END")が入力されるまで入力を受け付けます。指定された文字列が入力されたらループを終了し、入力されたテキストを表示します。