C++中有一个存放m_name和m_password的文本文件,每一个m_name与与之对应的m_password存放在一行中,现需要在程序中输入新的两个string 类型的username和password,比对username和password是否与文本文件中的一个m_name与与其对应的m_password相同
时间: 2024-02-06 19:11:41 浏览: 105
好的,对于你的问题,你可以使用C++中的文件操作来实现。具体操作步骤如下:
1. 打开文件,使用 `ifstream` 类型的对象打开文件,例如:
```C++
ifstream infile("file.txt");
```
2. 读取文件内容,使用 `getline()` 函数读取文件中的一行内容,并将其存储到 `string` 类型的变量中,例如:
```C++
string line;
getline(infile, line);
```
3. 拆分字符串,使用 `substr()` 函数或者 `stringstream` 类型的对象将一行字符串拆分成 `m_name` 和 `m_password` 两部分,例如:
```C++
// 使用substr()函数
string m_name = line.substr(0, line.find(' '));
string m_password = line.substr(line.find(' ') + 1);
// 使用stringstream对象
stringstream ss(line);
string m_name, m_password;
ss >> m_name >> m_password;
```
4. 比对用户名和密码,将输入的用户名和密码与读取的 `m_name` 和 `m_password` 进行比对,例如:
```C++
string username, password; // 输入的用户名和密码
bool isMatched = false; // 标记是否匹配成功
while (getline(infile, line)) {
string m_name, m_password;
stringstream ss(line);
ss >> m_name >> m_password;
if (username == m_name && password == m_password) {
isMatched = true;
break;
}
}
if (isMatched) {
cout << "Matched!" << endl;
} else {
cout << "Not matched!" << endl;
}
```
最后别忘了关闭文件:
```C++
infile.close();
```
希望以上步骤能够帮助你实现你的需求。
阅读全文