vs2013调试c语言,怎么使用VisualStudio2013编写和调试c语言程序

密码保存在文件中,从文件中读取密码,但是没做容错和异常处理,仅供参考

#include

#include

#define PSDLEN 6

void inputPsd(char *str) /*处理输入*/

{

int i;

for(i = 0; i < PSDLEN; i++)

{

while(1)

{

str[i] = getch();

if(str[i] == '\b') /*处理退格键*/

{

i--;

if(i < 0)

{

i = 0;

}

else

{

printf("\b \b");

}

continue;

}

else if(str[i] == '\r') /*处理回车键*/

{

continue;

}

else

{

printf("*");

break;

}

}

}

str[i] = '\0';

printf("\n");

}

int checkFirst() /*检测是否是第一次使用*/

{

FILE *fp;

if((fp = fopen("psd.dat", "rb")) == NULL)

{

return 1;

}

fclose(fp);

return 0;

}

void firstUse() /*第一次使用 需要输入密码*/

{

FILE *fp;

int i;

char passwd[PSDLEN + 1];

char checkPsd[PSDLEN + 1];

if((fp = fopen("psd.dat", "wb")) == NULL)

{

printf("Creat password error!\n");

exit(1);

}

while(1)

{

printf("Please input password:");

inputPsd(passwd);

printf("\nPlease input password again:");

inputPsd(checkPsd);

if(!strcmp(passwd, checkPsd))

{

break;

}

printf("\ncheck password error! \n");

}

fwrite(passwd, sizeof(char), PSDLEN, fp);

fclose(fp);

}

void login() /*核对密码,并登录*/

{

FILE *fp;

int i, num = 3;

char passwd[PSDLEN + 1];

char checkPsd[PSDLEN + 1];

if((fp = fopen("psd.dat", "rb")) == NULL)

{

puts("Open psd.dat error");

exit(1);

}

fread(passwd, sizeof(char), PSDLEN, fp);

fclose(fp);

passwd[PSDLEN] = '\0';

printf("Please input password to login");

while(num)

{

printf("you have %d chances to cry:\n", num);

inputPsd(checkPsd);

if(!strcmp(passwd, checkPsd))

{

break;

}

puts("\npassword error,Please input again");

num--;

}

if(!num)

{

puts("Press any key to exit...");

getch();

exit(0);

}

else

{

puts("\n--------\nWelcome!\n--------\n");

}

}

void main()

{

if(checkFirst())

{

firstUse();

}

else

login();

getch();

}

取消

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值