伪代码读写CSV文件:游戏账号登录注册校验功能实现求助
游戏账号体系CSV读写校验实现方案
首先约定accountDetails.csv的存储格式,每行存储一个账号信息,逗号分隔昵称和密码,示例如下:
alice,123456 bob,abc123
如果需要表头区分字段,可在第一行加nickname,password,后续读取时跳过首行即可。
核心缺省函数实现
你目前的伪代码框架已经很清晰,只需要补全write_details(注册写入)和check_details(登录校验)两个函数即可:
1. 注册写入函数 write_details
逻辑:先校验昵称是否已存在,不存在再追加写入新账号
write_details(input_nick, input_pwd) { // 先读文件校验昵称重复 myFile = openRead("accountDetails.csv") while not endOfFile(myFile) { line = trim(readLine(myFile)) if line == "" // 跳过空行 continue saved_nick, saved_pwd = split(line, ",") if saved_nick == input_nick { closeFile(myFile) print("该昵称已被注册,请更换") return } } closeFile(myFile) // 校验通过写入新账号 myFile = openAppend("accountDetails.csv") writeLine(myFile, input_nick + "," + input_pwd) closeFile(myFile) print("注册成功") }
同时需要调整你原有user_register函数,把输入的昵称密码传入写入函数:
user_register() { nickname = input("Enter nickname") // 注意此处应为获取输入的input,不是输出用的print password = input("Enter password") write_details(nickname, password) }
2. 登录校验函数 check_details
逻辑:遍历CSV所有行,比对输入的账号密码是否匹配
check_details(input_nick, input_pwd) { myFile = openRead("accountDetails.csv") // 如果CSV有表头,加一行 skipFirstLine(myFile) 跳过首行 while not endOfFile(myFile) { line = trim(readLine(myFile)) if line == "" continue saved_nick, saved_pwd = split(line, ",") if saved_nick == input_nick and saved_pwd == input_pwd { closeFile(myFile) print("登录成功,欢迎" + input_nick) // 此处可跳转游戏主逻辑 return true } } closeFile(myFile) print("昵称或密码错误,请重试") return false }
同样需要调整原有user_login函数,传入参数:
user_login() { nickname = input("Enter nickname") password = input("Enter password") check_details(nickname, password) }
额外优化建议
- 输入限制:可以限制昵称不允许包含逗号,避免CSV拆分时出现异常
- 异常处理:可以加文件不存在的判断,首次运行时自动创建空的
accountDetails.csv,避免读取报错 - 安全优化:如果后续需要提升安全性,不要明文存储密码,可将密码哈希后再写入CSV,校验时比对哈希值即可
内容的提问来源于stack exchange,提问作者james.billinge
相关产品推荐
相关产品推荐

