C++ 控制台登录/注册程序,支持账号密码验证、新用户注册、Tab 切换焦点、密码掩码回显,登录成功后播放终端进度条动画。
- 账号密码登录,验证通过后播放进度条动画
- 注册新账号,自动查重,写入
data/users.txt - Tab 键切换焦点(输入账号 / 输入密码 / 登录按钮 / 注册按钮)
- 密码输入掩码回显
- 错误信息统一在底部显示,不破坏界面布局
- 登录/注册操作自动记录日志到
logs/login.log - 首次运行自动创建
data/和logs/目录,零手动配置
登录:
请输入账号:________________________
请输入密码:________________________
登录 注册
注册:
请输入账号:________________________
请输入密码:________________________
确认注册
登录成功后:
[ ] 0%
[##### ] 25%
[########## ] 50%
[############### ] 75%
[####################] 100%
登录成功!
按任意键继续...
每 0.1 秒增长一格
#(5%),全程 2 秒跑完。
git clone https://github.com/DenJeb/cpp-Login.git
cd cpp-Login
mkdir build && cd build
cmake -G "MinGW Makefiles" ..
cmake --build .
cd ..
./login.exe需要 CMake ≥ 3.16,g++ 支持 C++17(仅 Windows,依赖
<windows.h>和<conio.h>)。或直接用 g++:
g++ -std=c++17 main.cpp src/ui.cpp src/input.cpp src/userStore.cpp src/app.cpp src/logger.cpp -I include -o login.exe
Login/
├── CMakeLists.txt # CMake 构建配置
├── README.md # 项目说明
├── LICENSE # MIT License
├── main.cpp # 入口
├── include/
│ ├── app.h # App 类 — 状态机,管理全部状态和事件循环
│ ├── input.h # InputField 类 — 输入框(回显、校验、退格)
│ ├── logger.h # Logger 静态类 — 写入 logs/login.log
│ ├── ui.h # Mode/Focus 枚举 + TAB_ORDER 数组 + 坐标常量 + UI 函数声明
│ └── userStore.h # UserStore 类 — 用户数据持久化
├── src/
│ ├── app.cpp # 事件分发 + 登录/注册逻辑
│ ├── input.cpp # 按键处理
│ ├── logger.cpp # 时间戳生成 + 文件写入
│ ├── ui.cpp # 界面绘制(inputFields/login/register)+ 光标控制 + 焦点切换
│ └── userStore.cpp # 文件读写 + 自动创建 data/ 目录和 users.txt
├── data/
│ └── users.txt # 账号密码存储(自动创建,每行 "账号 密码")
├── logs/
│ └── login.log # 登录/注册日志(自动创建)
└── .gitignore
| 按键 | 作用 |
|---|---|
| 字母/数字 | 输入 |
| Backspace | 删除 |
| Tab | 切换焦点 |
| Enter | 焦点在按钮上时生效:登录按钮 = 提交登录,注册按钮 = 切换注册模式 |