C# 从文本文件中读取用户名和密码的程序
我必须编写一个程序,从用户那里获取用户名和密码,并从文本文件中进行检查,如果值正确,则显示“欢迎”,如果值不正确,则显示“重试”。我在给定代码中遇到的问题是,如果我输入了错误的用户名和密码,则输出为“重试”两次。您只需添加C# 从文本文件中读取用户名和密码的程序,c#,visual-studio,c#-4.0,C#,Visual Studio,C# 4.0,我必须编写一个程序,从用户那里获取用户名和密码,并从文本文件中进行检查,如果值正确,则显示“欢迎”,如果值不正确,则显示“重试”。我在给定代码中遇到的问题是,如果我输入了错误的用户名和密码,则输出为“重试”两次。您只需添加控制台。WriteLine(“重试”)在if下吼叫 { StreamWriter a = new StreamWriter ("qasim.txt"); a.WriteLine ("user a"); a.WriteLine ("
控制台。WriteLine(“重试”)代码>在if下吼叫
{
StreamWriter a = new StreamWriter ("qasim.txt");
a.WriteLine ("user a");
a.WriteLine ("pass a");
a.WriteLine ("user b");
a.WriteLine ("pass b");
a.Close ();
string username = Console.ReadLine ();
string pass = Console.ReadLine ();
StreamReader ab = new StreamReader ("qasim.txt");
string line1 = ab.ReadLine ();
string line2 = ab.ReadLine ();
//int counter1 = 0;
//int x = 1;
while ((line1 != null) && (line2 != null))
{
if ((line1 == username) && (line2 == pass))
{
Console.WriteLine ("Welcome");
break;
}
else
{
Console.WriteLine ("Try Again");
}
line1 = ab.ReadLine ();
line2 = ab.ReadLine ();
}
Console.WriteLine ();
ab.Close ();
}
或者在else语句中:
{
StreamWriter a = new StreamWriter ("qasim.txt");
a.WriteLine ("user a");
a.WriteLine ("pass a");
a.WriteLine ("user b");
a.WriteLine ("pass b");
a.Close ();
string username = Console.ReadLine ();
string pass = Console.ReadLine ();
StreamReader ab = new StreamReader ("qasim.txt");
string line1 = ab.ReadLine ();
string line2 = ab.ReadLine ();
//int counter1 = 0;
//int x = 1;
while ((line1 != null) && (line2 != null))
{
if ((line1 == username) && (line2 == pass))
{
Console.WriteLine ("Welcome");
break;
}
Console.WriteLine ("Try Again");
username = Console.ReadLine ();
pass = Console.ReadLine ();
}
Console.WriteLine ();
ab.Close ();
}
这样,程序将再次询问用户密码,直到用户输入正确的用户名/密码
{
StreamWriter a = new StreamWriter ("qasim.txt");
a.WriteLine ("user a");
a.WriteLine ("pass a");
a.WriteLine ("user b");
a.WriteLine ("pass b");
a.Close ();
string username = Console.ReadLine ();
string pass = Console.ReadLine ();
StreamReader ab = new StreamReader ("qasim.txt");
string line1 = ab.ReadLine ();
string line2 = ab.ReadLine ();
//int counter1 = 0;
//int x = 1;
while ((line1 != null) && (line2 != null))
{
if ((line1 == username) && (line2 == pass))
{
Console.WriteLine ("Welcome");
break;
}
else
{
Console.WriteLine ("Try Again");
}
username = Console.ReadLine ();
pass = Console.ReadLine ();
}
Console.WriteLine ();
ab.Close ();
}
现在,程序运行得非常好。'我在给定代码中遇到的唯一问题是,我无法添加一个else语句,该语句表示“重试”。。。是的,你可以,你不知道怎么做吗?@SpencerWieczorek我试图添加else语句,但因为它在输入错误值时处于循环中,它会给出“重试”两次,当我输入“用户b”和“通过b”时,它首先给出“重试”,然后给出“欢迎”,你应该发布你尝试过的内容,因为你没有正确地使用它。你能帮我吗?我在这里是一个新手,在编程@SpencerWieczorekI中尝试过,但因为它在循环中输入错误的值,它会给出“重试”两次,当我输入“用户b”和“通过b”时,它首先给出“重试”,然后给出“欢迎”。这些行line1=ab.ReadLine();line2=ab.ReadLine()循环内的code>必须是username=Console.ReadLine();pass=Console.ReadLine()代码>,这样会再次询问用户,直到他尝试正确的用户/密码。我会用它更新我的答案。第二个问题是如何检查文本文件中的所有用户和密码,为此,您有两个选项,或者您将文件读取到内存中,或者每次使用猜测用户和密码时都读取该文件。我提供的代码工作正常,还可以读取所有用户名和密码唯一的问题是它没有重试一次如果用户名和密码不正确,是否有任何方法我可以在循环外部编写重试语句
public static void Main (string[] args)
{
//I am using StreamWriter here only to show//
//the file can contain more lines//
StreamWriter a = new StreamWriter ("qasim.txt");
a.WriteLine ("user1");
a.WriteLine ("@abc");
a.WriteLine ("user2");
a.WriteLine ("abc@");
a.Close ();
Console.WriteLine ("Kindly Enter Username:");
string username = Console.ReadLine();
Console.WriteLine ("Kindly Enter Password:");
string pass = Console.ReadLine ();
StreamReader ab = new StreamReader ("qasim.txt");
bool userExist = false;
string line1 = ab.ReadLine();
string line2 = ab.ReadLine();
while ((line1 != null) && (line2 != null))
{
if ((line1 == username) && (line2 == pass))
{
userExist = true;
Console.WriteLine ("Welcome");
break;
}
line1 = ab.ReadLine ();
line2 = ab.ReadLine ();
}
if (userExist == false)
{
Console.WriteLine ("Try Again");
}
ab.Close ();
}