请有人通过C ++ [VS 2015]中的用户输入澄清我现在遇到的问题
我有一个简单的课程StudentEntry
const int MAX_STUDENT = 50;
int entryCount = -1;
class StudentEntry {
public:
StudentEntry(const std::string &s, std::vector<int> li) : name(s), marks(li) {}
private:
std::string name;
std::vector<int> marks;
}
* entryList[MAX_STUDENT];
两个非会员功能要求用户输入名称[string
]并标记[vector<int>
]:
std::string getName() {
std::string input;
std::cout << "Enter student name: ";
std::cin >> input;
return input;
}
std::vector<int> getMarks() {
std::string line;
int number;
std::vector<int> input;
std::cout << "Enter student marks separated by spaces: ";
getline(std::cin, line);
std::istringstream ss(line);
while (ss >> number) {
input.push_back(number);
}
return input;
}
我的目标是使用addRecord()
这样的函数添加新条目。我打算做的是:
int main()
{
std::string in_name = getName();
std::vector<int> in_marks = getMarks();
entryList[entryCount] = new StudentEntry(in_name, in_marks);
...
}
但是,我无法从用户输入中读取矢量。基本上,如果我评论该行
std::string in_name = getName();
我可以输入一些标记并将其保存到in_marks
。但在我阅读in_name
后,in_marks
向量未从提示中读取
为什么会这样?