JhW*_*FJh 0 c# login text-files
我是编码新手,并且一直在尝试使用文本文件进行登录(我知道我不知道使用文本文件进行登录是不安全的)
namespace text_file_login
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
private void btn_register_Click(object sender, EventArgs e)
{
StreamWriter user_reg =
new StreamWriter(@"E:\SSD\Controled Assesment\text file login\text file login\username.txt");
StreamWriter pass_reg =
new StreamWriter(@"E:\SSD\Controled Assesment\text file login\text file login\password.txt");
user_reg.WriteLine(txt_user.Text);
user_reg.Close();
pass_reg.WriteLine(txt_pass.Text);
pass_reg.Close();
MessageBox.Show("Register was sucessful");
}
private void btn_login_Click(object sender, EventArgs e)
{
string user = "";
string pass = "";
int user_line_number = 0;
int pass_line_number = 0;
StreamReader user_login =
new StreamReader(@"E:\SSD\Controled Assesment\text file login\text file login\username.txt");
StreamReader pass_login =
new StreamReader(@"E:\SSD\Controled Assesment\text file login\text file login\password.txt");
do
{
user = user_login.ReadLine();
user_line_number++;
if (user == txt_user.Text)
{
do
{
pass = pass_login.ReadLine();
pass_line_number++;
if ((pass == txt_pass.Text) && (user_line_number == pass_line_number))
{
MessageBox.Show("Login was succesful");
//this.Close();
}
else
{
if ((user_line_number > pass_line_number) || (user_line_number < pass_line_number))
{
MessageBox.Show("Wrong Password");
}
}
} while (pass_login.Peek() != -1);
}
} while (user_login.Peek() != -1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
登录有效,注册有效。但是,如果用户名或密码错误,我可以肯定这会永远循环。我如何结束循环,以便如果用户名或密码错误,我可以显示一个消息框?我不是很关心多个用户名,但是如果可以的话,可以解决这个问题吗?
对不起,如果这写得不好。我是初学者
如果您想“跳出”循环,那么您实际上可以这样做:
do {
if (something)
break;
}
while (condition)
Run Code Online (Sandbox Code Playgroud)