gpt4 book ai didi

c++ - 如何在C++中获取某些元素

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:19 25 4
gpt4 key购买 nike

我是 C++ 新手,请原谅我的错误;我正在尝试创建一个程序,要求用户输入他们有多少 sibling ,并根据他们的输入,写下 sibling 的姓名年龄性别(以空格分隔)。

std::string name, age, gender;
int n;
std::vector<str::string> siblings;

std::cout << "How many siblings do you have? ";
std::cin >> n;

for (int a=0;a<n;a++){
std::string x;
std::cout << "Please enter info for sibling #" << (a+1) << ": ";
std::cin >> name;
std::cin >> age;
std::cin >> gender;
x += " " + name;
x += " " + age;
x += " " + gender;
siblings.emplace_back(x)
}

假设用户输入了“3”个 sibling 的信息:

Michael 14 Male
Sam 20 Female
Anna 8 Female

如何获取第一个 sibling 的年龄、第二个 sibling 的年龄、第三个 sibling 的年龄?跟名字一样?性别?

我试过

std::cout << age

但这只给了我一个结果。

最佳答案

将数据存储在结构或类中,例如:

struct PeopleStats
{
std::string name, age, gender;
};

然后创建此类对象的 vector ,而不是字符串 vector :

std::vector<PeopleStats> siblings;

然后你的输入循环,而不是将所有数据一起塞进一个字符串中,而是将它存储在这些对象之一中,然后将该对象放入 vector 中。

for (int a=0;a<n;a++){
PeopleStats x;
std::cout << "Please enter info for sibling #" << (a+1) << ": ";
std::cin >> x.name;
std::cin >> x.age;
std::cin >> x.gender;
siblings.emplace_back(x)
}

然后你可以这样显示,比如每个人的年龄:

for (auto const & sibling : siblings)
std::cout << sibling.age << '\n';

关于c++ - 如何在C++中获取某些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21226289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com