优化C++制作的简易密码管理工具
发布日期:2022-03-03 10:44:09 浏览次数:14 分类:技术文章

本文共 1956 字,大约阅读时间需要 6 分钟。

最近空闲时间较多,特地复习下C++的基础知识。

原文地址 

修改(优化)点:

  1. 修复从文件中读取数据、把数据重新写入文件等BUG使软件能正常运行
  2. 删除持久化数据的多余空格
  3. 修改每次新增都持久化为先缓存再手动持久化
  4. 原作只管加密不管解密
  5. 下一步基于Qt图形化

操作截图如下:

代码如下:

#define _CRT_SECURE_NO_WARNINGS#include 
#include
#include
#include
#include
#define fopen_s(pFile,filename,mode) ((*(pFile))=fopen((filename), (mode)))==NULLusing namespace std;/* global variables */int lnChrLmt=20;int lnsLmt=10;int gCnt = 0;char websiteArr[10][20];char usernameArr[10][20];char passwordArr[10][20];char remarkArr[10][20];char filePath[20] = "data.txt";char spw[20] = "abcd";int retryCnt = 3;void init();void readAll();void search();void append();void save();void remove();void edit();void startPwd();void show();void dump();// remove a element from arrayint remove_from_array(char a[10][20], int n, int &len) { if(a == NULL || n<0 || len < 0 || n>=len) { return -1; } int i; for(i = n; i < len-1; i ++) { memcpy(static_cast
(a[i]), static_cast
(a[i+1]), lnChrLmt); } --len; return 0;}// initailize programvoid init() { FILE *pFile; if(fopen_s(&pFile, filePath, "r")!=0) { printf("error open when init"); system("pause"); exit(1); } int c; do { c=fgetc(pFile); if (c=='\n') { gCnt++; } } while(c!=EOF); fseek(pFile, 0, SEEK_SET); for(int i=0; i
=0; i--) { if(strcmp(spw, tmpStr)==0) { nSucceed = true; break; } else { printf(retryCnt+" times left"); } } if(!nSucceed) { printf("error password"); } else { printf("press any key to continue...\n"); } system("pause");}// read data from cachevoid readAll() { for(int i=0; i
=0) { remove_from_array(websiteArr, i, lnsLmt); remove_from_array(usernameArr, i, lnsLmt); remove_from_array(passwordArr, i, lnsLmt); remove_from_array(remarkArr, i, lnsLmt); printf("lnChrLmt: %d\n",lnChrLmt); gCnt--; break; } } printf("remove success\n");}// edit one record in cachevoid edit() { char tmpStr[lnChrLmt]; int targetIndex=-1; printf("input website to edit: "); scanf("%s", tmpStr); for(int i=0; i

 

转载地址:https://blog.csdn.net/yangjiegang8/article/details/104146880 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:基于C++简易JSON解析器
下一篇:转圈算法

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月05日 22时40分10秒