用IO标准函数touch有一个usr.txt的文件,其中存储着用户的账户和密码,格式如下: zhangsan aaaa lisi bbbbb 空格前面是账户,空格后面是密码,一行一个账户、密码 要求如下: 从终端获取一个账户名和密码 判断是否能够登录成功 若账户不存在:则提示账户不存在 若账户存在,密码不匹配:则提示密码错误 账户密码均存在:则显示登录成功。
时间: 2023-05-21 12:04:44 浏览: 52
以下是用Lua编写的实现代码:
```lua
-- 打开文件
local file = io.open("usr.txt", "r")
-- 存储用户名和密码的表
local users = {}
-- 遍历文件中的每一行,提取用户名和密码
for line in file:lines() do
local username, password = line:match("(%S+)%s+(%S+)")
users[username] = password
end
-- 关闭文件
file:close()
-- 从终端获取用户名和密码
io.write("请输入用户名:")
local username = io.read("*line")
io.write("请输入密码:")
local password = io.read("*line")
-- 判断是否能够登录成功
if not users[username] then
print("账户不存在")
elseif users[username] ~= password then
print("密码错误")
else
print("登录成功")
end
```
当然,实现代码还有很多改进的空间,比如可以加上输入错误次数限制等功能,但这已经足够满足问题的要求了。
相关问题
用io函数touch有一个usr.txt的文件,其中存储着用户的账户和密码,格式如下: zhangsan aaaa lisi bbbbb 空格前面是账户,空格后面是密码,一行一个账户、密码 要求如下: 从终端获取一个账户名和密码 判断是否能够登录成功 若账户不存在:则提示账户不存在 若账户存在,密码不匹配:则提示密码错误 账户密码均存在:则显示登录成功。
这是一个非常常见的文件读写问题,可以使用Lua的io库来解决。下面是参考代码:
local username, password = io.read("*line", "*line")
local file = io.open("usr.txt", "r")
if not file then
print("Error: cannot open usr.txt")
else
local found = false
for line in file:lines() do
local acc, pwd = line:match("(%S+)%s+(%S+)")
if username == acc then
found = true
if password == pwd then
print("Login successful!")
else
print("Password error!")
end
break
end
end
if not found then
print("Username not found!")
end
file:close()
end
这个程序从终端获取一个账户名和密码,然后打开存储账户和密码的文件usr.txt并逐行遍历,查找是否存在账户名和对应的密码。如果账户不存在则提示错误,如果账户存在但密码不匹配则提示密码错误,否则显示登录成功。请注意,此代码仅作参考,您可能需要对其进行更改以适应您的特定需求。
touch有一个usr.txt的文件,其中存储着用户的账户和密码,格式如下: zhangsan aaaa lisi bbbbb 空格前面是账户,空格后面是密码,一行一个账户、密码 要求如下: 从终端获取一个账户名和密码 判断是否能够登录成功 若账户不存在:则提示账户不存在 若账户存在,密码不匹配:则提示密码错误 账户密码均存在:则显示登录成功。
我理解了你的问题,我可以给出以下代码来实现你的需求:
```
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
string username, password, user_id, user_pwd;
bool flag = false;
ifstream in("usr.txt");
cout << "请输入用户名:";
cin >> username;
cout << "请输入密码:";
cin >> password;
while (in >> user_id >> user_pwd){
if (user_id == username){
flag = true;
if (user_pwd == password){
cout << "登录成功!" << endl;
break;
}else{
cout << "密码错误!" << endl;
break;
}
}
}
if (!flag){
cout << "账户不存在!" << endl;
}
return 0;
}
```
这个程序会从 usr.txt 文件中读取账户和密码,然后询问用户输入账户名和密码,判断是否能够登录成功。如果账户不存在,程序会提示用户账户不存在,如果账户存在但密码不匹配,程序会提示密码错误,否则会显示登录成功。