gpt4 book ai didi

c++ - 读/写数据然后分离数据

转载 作者:行者123 更新时间:2023-11-30 04:35:26 24 4
gpt4 key购买 nike

我是 C++ 的新手。我正在做一个 C++ 注册表单,我将所有用户数据保存在一个名为 user.txt 的文本文件中,格式如下

name|password|address|postal|phone

每条用户记录占一行。

所以我的第一个问题是如何在 C++ 中很好地做到这一点

关于阅读部分,我的主要问题是如何通过拆分“|”来分隔数据然后将记录放在用户数组中。因此,当我执行登录功能时,我可以遍历数组以匹配用户。

我目前的阅读代码是

string User::readUser(){
ifstream fin("user.txt");
string line;
while(getline(line,fin)){
string name, password, address; int postal, phone;//put the records into a 2 dimention array
}
//return array
}

最佳答案

查看 this answer .

在您的情况下,字段将附加到 vector<string>按顺序,所以你可以直接从它访问它们。第一个位置对应于名称,第二个对应于密码等等。

这是一个例子:

// The elements should be in this order: name, password, address, postal, phone
vector<string> v = split(line, '|');
string name = v[0], password = v[1], address = v[2];

关于你的第二个问题,你可以创建一个描述用户的结构或类:

struct User {

// Using type string for all fields for convenience.
string name, password, address, postal, phone;

User(string n, string pw, string a, string p, string ph): name(n),
password(pw),
address(a),
postal(p),
phone(ph) {}

};

vector<User> uv;

// ...

// Split string, create user instance and append it to the user list
vector<string> v = split(line, '|');
uv.push_back(User(v[0], v[1], v[2], v[3], v[4]));

遍历 User vector :

for (int i = 0; i < uv.size(); ++i) {
if (uv[i].name == "John") {
// Process John...
}
}

关于c++ - 读/写数据然后分离数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5263404/

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