gpt4 book ai didi

c++ - 输入一个值然后使用该值作为输入

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

我正在尝试获取输入,然后将输入值用于另一个 cin值(value)。这些代码无法编译(预期),只是为了说明我的想法:

class StaffLogin : public ShareData {
private:
string ID;
void authorized()
{
struct staffs
{
string username;
string password;
};
staffs id700014089, id700014090;
id700014089.username="Robin";
id700014089.password="c++ is fun";
cin>>ID;
cout<<"Username: ";
cin>>"ID".username;
cout<<"Password: ";
cin>>"ID".password;
}
};

例如,我想从用户那里得到一个ID,所以cin>>ID .然后在另一个输入 ( cin>>"the ID from previous cin".username ) 中使用该值,以便我可以轻松地为新用户创建新的 ID、用户名和密码。请告诉我是否有方法可以做到这一点?

编辑:好的,我通过使用找到了一个更简单的解决方案
map<string,string> stafflist;
map<string,string>::iterator it;
没有任何结构。如果你们中的一些人需要更多细节,请发表评论。 ;)

最佳答案

C++ 不是动态语言,因此要使用用户输入提供的名称动态创建对象,您需要使用某种键值容器,让您可以将任意名称与对象相关联。 C++ 中的标准解决方案是 std::map<Key, Value>std::unordered_map<Key, Value> .

假设员工 ID 始终是数字,您可以这样做:

struct staffs
{
string username;
string password;
};
using StaffDirectory = std::map<unsigned long, staffs>;

StaffDirectory staff_directory;

// ...

unsigned long id;
if (std::cin >> id) // read the ID
{
// check the ID
if (!validateStaffID(id))
throw std::runtime_error("Invalid staff ID: " + to_string(id));
staffs s;
if (std::cin >> s.username >> s.password) // read username and password
{
// add the object to the map, using `id` as the key
staff_directory[id] = s;
}
}

关于c++ - 输入一个值然后使用该值作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937696/

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