因此,當我登錄時,我在文本檔案中的第一個注冊用戶名和密碼基本上可以通過驗證,但是我的下一對通過了 .contains 但無法檢查密碼,沒有給我訊息并關閉控制臺。
文本檔案示例-
艾略特|Benten67Fred|佩恩
它將能夠檢查 Elliot 和 Benten67。但是可以找到 Fred 但無法檢查密碼是否正確?任何幫助都會很棒
public void Register()
{
string filePath = @"/Users/elliot/Documents/Film Libary Software/Film-Libary/Film-Libary/bin/Debug/netcoreapp3.1/UserInfo.txt";
Console.WriteLine("Create A Username which contains A Upper Case character");
Username = Console.ReadLine();
bool usernameIsUpper = Username.Any(char.IsUpper);
if (usernameIsUpper)
{
Console.WriteLine("Please enter a password: ");
Password = Console.ReadLine();
string toWrite = Username "|" Password;
File.AppendAllText(filePath, toWrite);
Login();
}
else
{
Console.WriteLine("Invalid Username: Please try again!");
Register();
}
}
public void Login()
{
string fileName = @"/Users/elliot/Documents/Film Libary Software/Film-Libary/Film-Libary/bin/Debug/netcoreapp3.1/UserInfo.txt";
using (StreamReader reader = new StreamReader(fileName))
{
string line;
Console.WriteLine("Enter your username");
string loginUsername = Console.ReadLine();
while ((line = reader.ReadLine()) != null)
{
if (line.Contains(loginUsername))
{
int indexOfDelimiter = line.IndexOf('|');
string usernameFromFile = loginUsername;
string passwordFromFile = line.Substring(indexOfDelimiter 1, line.Length - (indexOfDelimiter 1));
Console.WriteLine("Please enter your password");
string enteredPassword = Console.ReadLine();
if (enteredPassword == passwordFromFile)
{
Console.WriteLine("Elliot well done");
}
}
}
}
}
uj5u.com熱心網友回復:
您的閱讀代碼要求每個用戶都在單獨的行上,但您沒有撰寫新行,您可以在此處看到
Elliot|Benten67Fred|Payne
你需要
Elliot|Benten67
Fred|Payne
錯誤在這里
string toWrite = Username "|" Password;
File.AppendAllText(filePath, toWrite);
你需要
string toWrite = Username "|" Password "\n";
File.AppendAllText(filePath, toWrite);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/439318.html
