如何从多个输入C ++中获取某个元素

时间:2014-01-18 06:01:06

标签: c++

我希望根据用户在不同行中输入的内容来获取某个元素。我是C ++编程的新手,所以我不确定要采取什么样的路线。

std::string siblings;
std::string names;

std::cout << "Please enter how many siblings you have: ";
std::cin >> siblings;

for (int x=0;x<siblings;x++){
    std::cout << "Please enter your sibling(s) name: ";
    std::cin >> names;
}

因此,如果用户输入'3'兄弟并输入Mark,John,Susan,我如何得到第二兄弟的名字 - “John”?或者输入的第一个名字,或者最后一个名字?

**此外,我想要问一次,等待用户根据他们放在不同行上的内容放入X数量的兄弟姐妹,然后继续进行该程序,但问题是反复询问。 / p>

1 个答案:

答案 0 :(得分:1)

首先,您应该将siblings定义为int而不是std::string,否则您在operator<循环中使用for,赢了“工作。其次,您应该使用std::vector并在for循环内推送名称。这是完整的工作代码:

int siblings = 0;
std::vector<std::string> names;

std::cout << "Please enter how many siblings you have: ";
std::cin >> siblings;

for (int x = 0; x < siblings; x++) {
    std::string current;
    std::cout << "Please enter the name for sibling #" << (x + 1) << ':';
    std::cin >> current;
    names.emplace_back(current);
}

上面的代码会询问兄弟姐妹的数量,然后会询问每个兄弟姐妹的名字并将其推入names

如果你真的想冒险进入使用C和C ++的字符串格式的神奇世界,take a look at this other question