c++ - 将多个输入存储到数组中

标签 c++

假设用户输入

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/

相关文章:

c# - 将 C++ 字符数组转换为 C# 字符串

c++ - 用于检查我们是否拥有有效数独的辅助函数

c++ - 类 getter rand 变量

c++ - 如何管理指向已引用对象内部数据的 shared_ptr?

c++ - glOrtho 制作顶 View 的正确参数是什么?

C++ 套接字和压力测试

c++ - 对 clang 中析构函数的 undefined reference

c++ - 将视口(viewport)渲染到纹理会产生重叠视口(viewport)?

c++ - tbb::combinable::local() 太慢

c++ - 用于检查 STL 容器长度是否相等的可变参数函数