-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