软件发布后,如果不希望未经授权的用户使用,可以设置软件密码,启动软件后,必须正确输入密码才能进行后续操作。
作为教学演示,这里简单地将密码赋值给一个变量,编译后不能更改,如果想更改,必须重新编译。
用户有3次输入密码的机会,3次输入错误,软件自动退出。通过for循环,连续3次读取用户输入的密码,并与初始密码进行比较,相同则校验通过,否则校验失败。
请看下面的代码:
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- int checkPwd();
- void myExit(char *msg);
- int password=123456; // 软件初始密码
- int main(){
- if(!checkPwd()){
- myExit("抱歉,3次输入密码错误。按任意键退出程序...\n");
- }
- myExit("恭喜你,密码检验成功。按任意键退出程序...\n");
- return 0;
- }
- // 校验密码
- // 返回 0 表示校验失败,返回 1 表示校验成功
- int checkPwd(){
- int pwd; //用户输入的密码
- int trytimes; // 用户尝试输入密码的次数
-
- printf("程序设置了密码,验证通过后才能使用。请输入6位数字密码:");
- // 可以输入三次
- for(trytimes=1; trytimes<=3; trytimes++){
- scanf("%d",&pwd);
- fflush(stdin);
- if(pwd==password){
- return 1;
- break;
- }else if(trytimes==3){
- return 0;
- }else{
- printf("抱歉,密码错误,您还有%d次机会:", 3-trytimes);
- }
- }
- }
- // 自定义退出程序函数
- // msg 为提示语
- void myExit(char *msg){
- printf("%s", msg);
- getch();
- exit(1);
- }
运行结果: