用IO标准函数touch有一个usr.txt的文件,其中存储着用户的账户和密码,格式如下: zhangsan aaaa lisi bbbbb 空格前面是账户,空格后面是密码,一行一个账户、密码 要求如下: 从终端获取一个账户名和密码 判断是否能够登录成功 若账户不存在:则提示账户不存在 若账户存在,密码不匹配:则提示密码错误 账户密码均存在:则显示登录成功。
时间: 2023-05-21 13:04:44 浏览: 83
以下是用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
```
当然,实现代码还有很多改进的空间,比如可以加上输入错误次数限制等功能,但这已经足够满足问题的要求了。
相关问题
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 文件中读取账户和密码,然后询问用户输入账户名和密码,判断是否能够登录成功。如果账户不存在,程序会提示用户账户不存在,如果账户存在但密码不匹配,程序会提示密码错误,否则会显示登录成功。
在普通账号zhangsan、lis、wangwu账户中是不可使用more命令的,现在请将这三个账户进行提权,让这三个用户可以使用more命令。(提示把zhangsan、lisi、wangwu这三个账号放在lisi组里面,zhangsan、wangwu增加一个附件组)
在Linux系统中,为了允许特定用户执行通常只有管理员权限才能使用的`more`命令,我们需要调整用户的组权限和文件或目录的权限。首先,我们将这三位用户添加到`lisi`组:
```bash
sudo usermod -G lisi wangwu
```
然后,为了让他们能够访问包含`more`命令的目录(通常是/bin或者/usr/bin),需要给`lisi`组设置适当的权限。假设`more`命令位于`/usr/bin/more`,我们可以这样做:
```bash
sudo chmod g+x /usr/bin/more # 添加执行权限给所有组成员
```
接下来,为了让`zhangsan`和`wangwu`这两个用户能访问附加的附件组,你需要创建一个新的组并将其添加他们,比如叫做`attachment`:
```bash
sudo groupadd attachment
sudo usermod -a -G attachment zhangsan
sudo usermod -a -G attachment wangwu
```
如果这些附件文件需要对这些用户可见,并允许读取,可以在存放附件的目录上设置相应的权限,例如`/path/to/attachments`:
```bash
sudo chmod g+r /path/to/attachments
```
最后,确保用户已经刷新了他们的登录会话,以便新的组权限生效。
阅读全文