2017-03-04 3 views
0

저는 코딩에 비교적 익숙하며 C#에서는 새로운 기능을 제공합니다. MSDN의 Channel 9 튜토리얼을 통해 작업 중이며 Console.ReadLine()과 관련된 내용을 이해할 수 없습니다. 그 다음 Values.txt에서 자체 라인에 각각 일련의 숫자를 읽고 -이 코드는 작동C# Console.ReadLine() 여러 줄을 읽는 중

static void Main(string[] args) 
    { 
     StreamReader myReader = new StreamReader("Values.txt"); 
     string line = ""; 

     while (line != null) 
     { 
      line = myReader.ReadLine(); 
      if (line != null) 
      { 
       Console.WriteLine(line); 
      } 
     } 

     myReader.Close(); 
     Console.ReadLine(); 
    } 

: 튜토리얼 중 하나의 일환으로

는, 강사는 다음 코드를 생성 콘솔 창으로 보냅니다. 내 질문은 그것이 효과가있는 이유입니다. Console.ReadLine()이 입력 스트림에서 한 줄을 읽는다는 것을 이해합니다. 그러나이 경우에는 while 루프에 속하지 않아도 여러 행을 읽습니다. 필자는 서면으로 콘솔 윈도우가 Values.txt의 마지막 행만 표시하고 Console.ReadLine()은 모든 행을 표시하기 위해 if 문 내에서 Console.WriteLine (line)을 따라야한다고 예상했을 것입니다. . 나는 무엇을 이해하지 못합니까? 도와 주셔서 감사합니다!

+0

아니요, StreamReader.ReadLine()이 수행하는 작업과 그 위치를 이해합니다. 문제의 Console.ReadLine()은 코드 블록의 마지막 줄입니다. – namtrahj

답변

0

Console.WriteLine()은 콘솔 창에 출력하는 명령이며 while 루프의 일부이기 때문에 콘솔 창에 출력됩니다. 파일의 모든 행을 인쇄합니다.

여기 Console.ReadLine()은 사용자 입력 및 조회가 입력 될 때까지 디버그 콘솔 창을 계속 열어두기 위해 추가됩니다. 보통 Console.ReadKey()가 더 적절합니다. 위의 코드에서 Console.ReadLine()은 파일에서 숫자를 읽는 코드가 아닙니다. 그것은 myReader.ReadLine(); while 루프. 그래서 while 루프는 파일의 끝에 도달 할 때까지 파일에서 행을 읽습니다.

+0

투표가 왜 내려 졌는지 이해가 안됩니다! – Armin

+0

Console.WriteLine()은 실제로 콘솔 창에 텍스트를 표시합니까? 지금까지 튜토리얼에서 Console.WriteLine()을 사용할 때마다 Console.ReadLine()이 뒤따 랐습니다. 그것은 항상 내게 반 직관적 인 것처럼 보였지만, 나는 제한된 이해로 그것을 요약했다. 그러나 Console.WriteLine()이 실제로 표시 작업을 수행하고 Console.ReadLine()이 콘솔 창을 담당하는 경우 훨씬 더 의미가 있습니다. – namtrahj

+0

예 Console.WriteLine()은 콘솔 창에 텍스트를 표시합니다. – Armin

0

루프가 실행될 때마다 라인을 읽습니다. 행이 널이 아니면 더 이상 행이 없을 때까지 반복됩니다. 그리고 루프가 반복 될 때마다 line이 null이 아니므로 라인을 인쇄합니다.

이 모든 것은 끝에서 Console.ReadLine() 문 앞에 발생합니다. 출력을 볼 수 있도록 프로그램을 일시 중지하는 것뿐입니다.

+0

감사합니다! 두 가지 방법이 무엇을했는지에 대한 근본적인 오해가있었습니다. – namtrahj