Похоже, вы хотите читать на основе строки. Для этого вы, вероятно, захотите использовать getline
последовательно, а затем проанализировать каждую строку, если вам нужно проанализировать число из прочитанной строки. Это делает входное чтение более последовательным.
Таким образом, вам не нужно вручную сканировать конец каждой строки, чтобы гарантировать, что следующая операция чтения начинается с новой строки.
Это также упрощает добавление обработки ошибок для повторяющихся запросов ввода.
, например
#include <string>
#include <iostream>
#include <istream>
#include <ostream>
#include <sstream>
int parse_integer(const std::string& input)
{
std::istringstream iss(input);
int result;
if (!(iss >> result))
{
// error - throw something?
}
return result;
}
int main()
{
int number;
std::string str;
int accountNumber;
std::string inputline;
std::cout << "Enter number: ";
if (!std::getline(std::cin, inputline))
{
// error - throw something?
}
number = parse_integer(inputline);
std::cout << "Enter name:";
if (!std::getline(std::cin, inputline))
{
// error - throw something?
}
str = inputline;
std::cout << "Enter account number:";
if (!std::getline(std::cin, inputline))
{
// error - throw something?
}
accountNumber = parse_integer(inputline);
return 0;
}