我希望根据用户在不同行中输入的内容来获取某个元素。我是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>
答案 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。