方法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")が入力されるまで入力を受け付けます。指定された文字列が入力されたらループを終了し、入力されたテキストを表示します。