-1
我创建了一个程序,可以从用户那里获取密码。用户还可以通过将原始密码保存在字符串中,然后将旧密码保存在新字符串中来更改密码,但如果两者都匹配,则用户可以输入新密码,但即使我在新字符串和旧字符串中都输入了相同的密码,if语句不返回true并且密码不会更改。 2,当我输入密码并按回车键时,输入也存储在密码中。 这是我的代码C++ - 我的密码程序没有更改密码
void password(int n)
{
string pass = "0", oldpass = "0";
char ch = '0';
if (n)
{
cout << "Enter Old Password: ";
ch = _getch();
while (ch != '\r')
{
oldpass.push_back(ch);
cout << "*";
ch = _getch();
}
cout << "Password is " << oldpass << endl;
if (oldpass == pass)
{
cout << "Enter New Password: ";
ch = _getch();
while (ch != '\r')
{
pass.push_back(ch);
cout << "*";
ch = _getch();
}
}
else
{
cout << "\nPassword Does Not Match" << endl;
system("pause");
}
}
else
{
cout << "No Password Found. Enter New Password... ";
ch = _getch();
while (ch != '\r')
{
pass.push_back(ch);
cout << "*";
ch = _getch();
}
cout << "Password is " << pass<<endl;
cout << "\nPassword Saved Successfully" << endl;
system("pause");
}
}
明白了非常感谢。只有一件事是声明一个字符串而不是初始化它,使它成为一个空字符串。我认为它有一个垃圾值? – SAIFI369
字符串不是基本的数据类型:int,float,double,char等。字符串是一个类并处理c样式字符串不包含的异常。所以不行,如果你不初始化一个String对象,它会将它的默认大小计数设置为0,不会包含任何字符,并且会处理对自身的调用。而c样式的字符串,是一个字符数组,并且将设置字符的内存等于它的大小,而不管内存是否被初始化。 – Dalphat
好的,我明白,你说什么每回呼功能? – SAIFI369