用户信息存在文本中,该文本以账号昵称,账号ID,账号密码,账号头像路径,账号好友昵称的方式存储(好友昵称之间用;分开)例如 张三,12345678,password,:/images/portrait/default.jpg,李四;小王 李四,23456789,hello,:/images/portrait/head4.jpg,张三 小王,34567890,world,:/images/portrait/head5.jpg,张三 小李,45678901,cplus,:/images/portrait/head6.jpg 请你写一个函数修改用户的昵称,思路是,先找到要改昵称的用户,修改用户的昵称,并将用户的好友昵称保存下来,改完之后重新打开文件,找到好友所在的行,修改好友的好友列表中被修改用户的昵称bool AccountInfo::resetNickname(const QString &userID, const QString &newNickName) { }
时间: 2024-04-17 09:24:47 浏览: 123
存储过程(修改用户信息是否已存在用户名)
下面是一个实现修改用户昵称的函数的示例代码:
```cpp
bool AccountInfo::resetNickname(const QString &userID, const QString &newNickName)
{
QFile file("user_info.txt");
if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
{
// 文件打开失败
return false;
}
QTextStream in(&file);
QStringList lines;
while (!in.atEnd())
{
QString line = in.readLine();
QStringList userFields = line.split(",");
if (userFields[1] == userID)
{
// 找到要修改昵称的用户
userFields[0] = newNickName;
line = userFields.join(",");
lines.append(line);
}
else
{
lines.append(line);
}
}
file.resize(0); // 清空原有内容
for (const QString &line : lines)
{
in << line << "\n";
}
file.close();
return true;
}
```
这个函数假设用户信息文件名为"user_info.txt",并且用户信息文件与代码在同一个目录下。函数首先打开文件并逐行读取内容,找到要修改昵称的用户后,将其昵称改为新的昵称。然后将修改后的用户信息重新写入文件,并关闭文件。
注意:这个示例代码只是演示了如何修改用户昵称,并没有处理好友昵称的保存和修改。你可以根据具体需求对代码进行修改和完善。
阅读全文