Почему бы вам не использовать std::getline
через некоторое время l oop, чтобы после ввода пустой строки l oop выходил, например так:
#include <iostream>
#include <string>
#include <vector>
int main() {
std::string line;
std::vector<std::string> lines;
while (getline(std::cin, line) && !line.empty()) {
lines.push_back(line);
}
std::cout << "User has entered " << lines.size() << " lines" << std::endl;
for (auto const& l : lines) {
std::cout << l << std::endl;
}
std::cout << "... End of program ..." << std::endl;
return 0;
}
Вы можете сохранить каждый пользователь строки вошел в контейнер std::vector
и позже извлечет эти строки.
Возможный вывод:
First line
Second line
User has entered 2 lines
First line
Second line
... End of program ...
ОБНОВЛЕНИЕ
Если вы хотите разрешить пользователю вводить только 2 строки и если вы хотите использовать для l oop, то вы можете сделать что-то вроде этого:
#include <iostream>
#include <string>
#include <vector>
int main() {
std::string line;
std::vector<std::string> lines;
for (int i = 0; i < 2; i++) {
std::getline(std::cin, line);
lines.push_back(line);
}
std::cout << "User has entered " << lines.size() << " lines" << std::endl;
for (auto const& l : lines) {
std::cout << l << std::endl;
}
std::cout << "... End of program ..." << std::endl;
return 0;
}
И вывод может быть :
First line
Second line
User has entered 2 lines
First line
Second line
... End of program ...