C#/데이터다루기

[C#] Console.ReadLine(), Console.WriteLine(), Console.Read(), Console.Write()

도도돋치 2025. 3. 20. 17:37
Contents 접기
728x90

C#에서 콘솔 프로그램을 만들 때 사용자 입력을 받거나 출력하는 방법

Console.ReadLine()Console.WriteLine()

 

Console.WriteLine() – 화면에 출력하기

화면에 텍스트를 출력하고, 자동으로 줄 바꿈(엔터)까지 해줌
Console.WriteLine("안녕하세요!");
Console.WriteLine("C#을 배워봅시다!");

🔹 출력:

안녕하세요!
C#을 배워봅시다!

✅ 줄 바꿈이 자동으로 적용됨

 

Console.Write() – 줄 바꿈 없이 출력

Console.WriteLine()과 달리 줄 바꿈을 하지 않음.
Console.Write("이름: ");
string name = Console.ReadLine();
Console.Write("나이: ");
string age = Console.ReadLine();
Console.WriteLine($"입력된 정보: {name}, {age}살");

🔹 출력 예시

이름: [장도치]
나이: [25]
입력된 정보: [장도치, 25살]

 Console.Write()를 사용하면 한 줄에서 입력을 받을 수 있음

 

Console.ReadLine() 

사용자 입력 받기

사용자가 입력한 문자열을 받아옴

Console.WriteLine("이름을 입력하세요:");
string name = Console.ReadLine();
Console.WriteLine($"안녕하세요, {name}님!");
Console.WriteLine("안녕하세요, {0}님!", name);

char input = Console.ReadLine()[0];	//인덱싱처리를 해서 젤 첫글자 가져옴
Console.WriteLine(input);

🔹 출력 예시 (사용자 입력: "장도치")

이름을 입력하세요:
[장도치]
안녕하세요, 장도치님!
안녕하세요, 장도치님!
장

 Console.ReadLine()은 사용자가 입력할 때까지 기다렸다가 입력을 받아옴

대괄호안의 숫자는 뒤에있는 변수를 순서대로 하나씩 가져온다는 뜻, 0번째니까 0번째에 있는 name을 가져옴


 숫자 입력 받기

Console.ReadLine()은 **문자열(string)**을 반환하므로 숫자로 변환해야 함.

Console.Write("나이를 입력하세요: ");
string input = Console.ReadLine(); 
int age = int.Parse(input); // 문자열을 숫자로 변환
Console.WriteLine($"당신의 나이는 {age}살 입니다.");

🔹 출력 예시 (사용자 입력: "25")

나이를 입력하세요: 25
당신의 나이는 25살 입니다.

 주의: 숫자가 아닌 값을 입력하면 int.Parse()에서 오류 발생=>TryParse()를 사용하여 안전하게 변환할 수 있다.

 

Console.Read()

  • 문자 하나를 숫자(정수, ASCII 코드)로 입력받음
  • Enter 치기 전이라도 첫 글자를 읽으면 바로 끝남
  • 결과는 int 타입 (문자 아님!)
Console.WriteLine("아무 키나 누르세요:");
int key = Console.Read();

Console.WriteLine($"입력한 문자의 ASCII 값: {key}");
Console.WriteLine($"입력한 문자: {(char)key}");

 

📌 예: A를 누르면 → 65 (A의 ASCII 코드), (char)key 하면 다시 문자로 변환 가능

 

TryParse()를 사용하여 안전하게 변환

숫자가 아닌 값을 입력해도 오류 없이 처리하는 방법
Console.Write("나이를 입력하세요: ");
string input = Console.ReadLine();

if (int.TryParse(input, out int age))
{
    Console.WriteLine($"당신의 나이는 {age}살 입니다.");
}
else
{
    Console.WriteLine("올바른 숫자를 입력하세요!");
}

✅ 이렇게 하면 입력 오류 방지가 가능하다

 

input.Split() 입력값사이에 문자(공백) 있는경우

만약 값을 "10 20"(문자열)으로 입력한다면 이것을 10,20인 숫자로 바꾸기위해서 어떻게 하면될까?

string input = Console.ReadLine();

string[] numbers = input.Split(' '); // 문자열을 공백으로 구분하여 배열로 만듬
int num1= int.Parse(numbers[0]);	// 숫자 10이 num1에 들어감
int num2= int.Parse(numbers[1]);	// 숫자 20이 num2에 들어감

 바로 위 코드와 같이 input.Split()을 사용하여 공백으로 나눠주면 된다. 

 

📖 정리

 Console.WriteLine() → 화면에 출력하고 자동 줄 바꿈
 Console.Write() → 줄 바꿈 없이 출력
 Console.ReadLine() → 사용자가 입력한 문자열을 받아옴

 Console.Read() → 사용자가 입력한 문자하나를 받아옴
✔ 숫자 입력은 int.Parse() 또는 TryParse() 사용
 TryParse()를 활용하면 입력 오류 방지 가능

728x90

'C# > 데이터다루기' 카테고리의 다른 글

[C#] 리터럴(literal)  (0) 2025.04.14
[C#] Escape Sequence  (0) 2025.04.14
[C#] 형변환-TryParse  (0) 2025.03.20
[C#] 형변환  (0) 2025.03.19
[C#] 자료형  (0) 2025.03.18