Ввод данных в цикле while
Занимаюсь по книжке Страуструпа и одном из заданий нужно реализовать ввод данных с клавиатуры, но у меня возникли проблемы с функций name_pairs::read_ages
. Функция не дает возможности ввода данных, просто выводит введенные до этого переменные и все.
#include <iostream>
#include <vector>
#include <string>
class name_pairs
{
public:
void name_pairs::read_names();
void name_pairs::read_ages();
void name_pairs::print();
private:
std::vector<std::string>name_vector;
std::vector<double>age_vector;
};
void name_pairs::read_names()
{
std::string name;
while (std::cin>> name)
{
name_vector.push_back(name);
}
}
void name_pairs::read_ages()
{
int age;
for (const std::string& name : name_vector )
{
std::cout << name << ": ";
std::cin >> age;
age_vector.push_back(age);
std::cout << std::endl;
}
}
void name_pairs::print()
{
for (int i = 0; i < name_vector.size(); i++ )
{
std::cout << name_vector[i] << " - " << age_vector[i] << std::endl;
}
}
int main()
{
name_pairs jojo;
jojo.read_names();
jojo.read_ages();
jojo.print();
}
Источник: Stack Overflow на русском