求大神帮我看看这个C++程序应该怎么改?

2024-12-05 07:09:40
推荐回答(1个)
回答1:

首先,你输入密码缓存在pwd中最后会带上回车符13,这点是错误的。
另外strcmp返回值等于0才表示2个字符串一样
改成:
if (strcmp(password,pwd)!=0)
或if (strcmp(password,pwd))
综合2种原因,所有不管输入什么都是正确的密码,哪怕你输入正确的密码。

退格键的问题,代码这样改:
用下面代码替换for(i=0......)和_putch('*');这2行
i=0;
while (i<8)
{
char c;
c=_getch();
if (c==13) break;
if (c==8)
{
if(i)
{
_putch(8);
_putch(32);
_putch(8);
i--;
}
continue;
}

pwd[i]=c;
i++;
}
pwd[i]=0;

你上机测试,有问题可以追问。