2017-11-19 6 views
-1
{ 
     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(); 
    } 

ユーザーからユーザー名とパスワードを取得してテキストファイルからチェックし、値が正しいかどうかを確認するプログラムを作成する必要があります。間違っていると「再試行」と表示されます。私が与えられたコードの問題は、間違ったユーザ名とパスワードを入力した場合、出力は「もう一度やり直してください」ということです。テキストファイルからユーザー名とパスワードを読み取るプログラム

+1

* '与えられたコードで唯一の問題は** **再試行することを言うelseステートメントを追加できません。' * ...はい、できますか? –

+0

@SpencerWieczorek 私はelseステートメントを追加しようとしましたが、間違った値を入力するとループしているので、 "Try Again"を2回与え、 "user b"と "pass b"を入力すると " "そして" Welcome " –

+0

あなたは試したものを投稿してください。正しく使っていないからです。 –

答えて

0
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 ("[email protected]"); 
     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(); 
    } 

ここでは、プログラム作業プログラムは完全に正常に機能します。

0

Console.WriteLine("Try Again");を追加することができます。

{ 
    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(); 
} 

または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; 
     } 
     else 
     { 
      Console.WriteLine ("Try Again"); 
     } 

     username = Console.ReadLine(); 
     pass = Console.ReadLine(); 
    } 
    Console.WriteLine(); 


    ab.Close(); 
} 

この方法で、ユーザは、右のユーザー名/パスを入力するまで、プログラムは再びユーザー彼パスワードを聞いてきます。

+0

私はそれを試しましたが、間違った値を入力するとループしているので、 "Try Again"を2回与えて、 "user b"と "pass"最初に「もう一度試してください」と「ようこそ」と答えます。 –

+0

これらのライン 'line1 = ab.ReadLine(); line2 = ab.ReadLine(); 'ループ内では' username = Console.ReadLine(); pass = Console.ReadLine(); 'このようにして、正しいユーザー/パスワードを試してみるまで、再度尋ねられます。私はそれで私の答えを更新します。 2つめの問題は、テキストファイル内のすべてのユーザーとパスワードをチェックする方法です。これには2つのオプションがあります。または、ユーザーがパスワードを推測するたびにファイルをメモリに読み込んだり読み取ります。 – Felipe

+0

私が与えたコードはうまく動作し、すべてのユーザー名とパスワードも読み取る唯一の問題は、一度だけ試してみることです。 –

関連する問題