假设用户输入
Sarah Freshman Computer Science Major
John Sophomore Math Major
我想知道如何将这些多个输入存储到列表中?
Name = [Sarah, John]
Year = [Freshman, Sophomore]
Major = [Computer Science Major, Math Major]
我能够将前两个(Sarah/Freshman & John/Sophomore)存储到一个列表中,但后一部分很难,因为专业被分隔成空格。
--编辑:示例代码--
我是 C++ 的新手,正在尝试创建一个程序来询问用户个人问题。
std::vector<std::string> name, year, major;
std::cout << "Hello, what is your Name Year Major? "; //asks user first
std::cin << name;
std::cin << age;
std::cin << major;
int n;
std::cout << "How many students will you input? "; //enter other students info
std::cin << n;
for (int a=0;a<n;a++){
std::cout << "Please enter Name Age Major for student #" << a << ": ";
std::string a, b, c;
std::cin >> a;
std::cin >> b;
std::cin >> c; //this part throws me off
name.push_back(a);
age.push_back(b);
major.push_back(c);
}
最佳答案
由于其他人已经提到如何通过更改您的输入来做到这一点,您可以在不更改输入的情况下执行此操作的方法是检查您正在阅读的单词是否是专业的第一个单词(即“计算机”“数学”等),如果看到它是,则使用 getline 到行尾。如果您的输入将完全像这样,检查一个单词是否是类(class)年份之一可能会更好,因为您不需要进行任何附加操作,而且要检查的单词列表要小得多。
或者,如果您知道表格始终是“名字”、“类(class)年份”、“专业”,您可以在读取第二个单词后简单地开始一个 getline。
关于c++ - 将多个输入存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21227694/