当你输入超过密码长度hehe1234,你的input里面的数据就是{h,e,h,e,1,2,3,4...}这时候你再输入正确密码hehe123,前面的都被覆盖,但是4还保留在数组里面,你的input其实还是hehe1234,所以你不可能再得到正确密码。
可以参考下面的代码:
#include <cstring>
#include <cstdio>
cout<<"Please enter password: "
gets(user)
if(strcmp(user,"password"/* 随便输入一个初始密码*/))cout<<"error"
else {……}
扩展资料:
C++参考函数
int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0
int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值,否则返回0
int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')
int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')
参考资料来源:百度百科-C++
#includevoid
main()
{
int
n,password=123456,i=1
while(1)
{
printf("输入密码:")
scanf("%d",&n)
if(n==password)
printf("welcome
to
use
the
software\n")
else
{
if(i<3)
printf("剩余的可输入密码的次数为:%d\n",3-i)
else
printf("password
error
!
you
can
not
use
the
software\n")
i++
}
if(i>=4||n==password)break
}
}
这个是不需要用return的,简明一点,初学的应该会
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)