Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Console.Read() 메서드 완벽 정리: 표준 입력 스트림에서 문자 읽기

C#의 Console.Read() 메서드는 표준 입력 스트림(Standard Input Stream)에서 다음 문자를 하나씩 읽어오는 데 사용됩니다. 이 메서드는 읽어온 문자를 그대로 반환하는 것이 아니라, 해당 문자의 ASCII 코드 값(정수형 int)으로 변환하여 반환한다는 점이 중요한 특징입니다.

문법(Syntax)

Console.Read() 메서드의 기본 문법은 다음과 같습니다.

public static int Read ();

매개변수는 받지 않으며, 입력된 문자의 코드 값을 int 타입으로 반환합니다. 더 이상 읽을 문자가 없으면 -1을 반환합니다.

사용 예제

이제 C#에서 Console.Read() 메서드를 실제로 구현한 예제를 살펴보겠습니다.

using System;
public class Demo{
    public static void Main(){
        int val;
        Console.WriteLine("값을 입력하세요");
        val = Console.Read();
        Console.WriteLine("입력된 값: " + val);
    }
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다. 사용자가 숫자 '5'를 입력했다고 가정해 보겠습니다.

값을 입력하세요
5
입력된 값: 53

결과 분석

출력 결과를 보면 입력한 값이 그대로 5가 아니라 53으로 표시되었습니다. 그 이유는 Console.Read() 메서드가 문자 자체가 아닌 문자의 ASCII 코드 값을 반환하기 때문입니다. 숫자 '5'의 ASCII 코드는 53이므로, 콘솔에 53이 출력되는 것입니다.

따라서 입력받은 문자를 실제 원하는 형태로 사용하려면 반환된 int 값을 적절히 변환해야 합니다. 예를 들어, 문자로 변환하려면 다음과 같이 캐스팅할 수 있습니다.

char ch = (char)Console.Read(); // '5'라는 문자 자체를 얻음

주요 특징 정리

  • 표준 입력 스트림에서 한 번에 한 문자씩만 읽습니다.
  • 반환 타입은 int이며, 문자의 ASCII(또는 유니코드) 코드 값이 반환됩니다.
  • Enter 키(줄바꿈 문자)도 하나의 문자로 처리합니다.
  • 스트림의 끝에 도달하면 -1을 반환합니다.

여러 문자나 한 줄 전체를 입력받아야 하는 경우에는 Console.ReadLine() 메서드를 사용하는 것이 더 적합합니다. Console.Read()는 단일 문자 단위의 입력 처리가 필요할 때 유용하게 활용할 수 있습니다.