C#
[C# 기초공부] 표준 입력
zoozoo2
2023. 1. 4. 03:17
- Console.ReadKey() : 사용자가 눌린 키 한 문자 정보를 리턴하는 메서드
🟨 함수원형
✔ ReadKey는 오버로딩 됨!
매개변수가 없는 메소드 ▶ public static ConsoleKeyInfo ReadKey ()
매개변수가 있는 메소드 ▶ public static ConsoleKeyInfo ReadKey(bool intercept)
⇒ true : 화면 출력 안함, false: 화면 출력 함
✔ 리턴타입 ConsoleKeyInfo는 MSDN에서 찾아보면 구조체임
✔ ReadKey는 내부적으로 false가 default값임
🟧 ConsoleKeyInfo
키의 문자와 Shift, Alt, Ctrl 보조키 상태 포함
ConsoleKeyInfo의 속성
- ConsoleKeyInfo.Key
- ConsoleKey 열거형 값
- ConsoleKey.A, Console.Escape 등 ...
- MSDN에서 찾아 볼 것
- https://learn.microsoft.com/ko-kr/dotnet/api/system.consolekey?redirectedfrom=MSDN&view=net-7.0
ConsoleKeyInfo.Key에서 사용자가 A키를 눌렀다면 ConsoleKey.A 가 됨!
대신 대소문자 구분이 안됨!
대소문자 구분 법
→ ConsoleKeyInfo.KeyChar 를 이용해서 눌린 키의 유니코드를 얻는 속성으로 대소문자를 구분할 수있다!
namespace ConsoleApp4
{
class MyClass
{
static void Main(string[] args)
{
ConsoleKeyInfo keyInfo;
do
{
keyInfo = Console.ReadKey();
if(keyInfo.Key == ConsoleKey.A)
{
Console.WriteLine("a가 눌렸다");
}
else if(keyInfo.Key == ConsoleKey.Escape)
{
Console.WriteLine("종료 뿅");
}else
{
Console.WriteLine("다른키가 눌렸다");
}
} while (keyInfo.Key != ConsoleKey.Escape);
}
}
}
대소문자 구분 안됨
namespace ConsoleApp4
{
class MyClass
{
static void Main(string[] args)
{
ConsoleKeyInfo KeyInfo;
do
{
KeyInfo = Console.ReadKey(true);
if (KeyInfo.KeyChar == 'a')
{
Console.WriteLine("a가 눌렸어");
}
else if (KeyInfo.KeyChar == 'A')
{
Console.WriteLine("A가 눌렸어");
}
else
{
Console.WriteLine("다른키가 눌렸어");
}
} while (KeyInfo.Key != ConsoleKey.Escape);
{
Console.WriteLine("종료 뿅");
};
}
}
}
.KeyChar 쓰면 대소문자 구분 됨
🟪 Console.ReadLine()
엔터키가 눌려질때까지 입력 받은 문자열을 리턴하는 메서드
활용
입력받은 문자열을 숫자로 사용할 때는 Convert.ToInt32()등의 메서드를 사용
namespace ConsoleApp4
{
class MyClass
{
static void Main(string[] args)
{
int Kor, Eng, Math, Total;
float Average;
Console.Write("국어 점수를 입력해 주세요: ");
Kor = Convert.ToInt32(Console.ReadLine());
Console.Write("수학 점수를 입력해 주세요: ");
Math = Convert.ToInt32(Console.ReadLine());
Console.Write("영어 점수를 입력해 주세요: ");
Eng = Convert.ToInt32(Console.ReadLine());
Total = (Kor + Math + Eng);
Average = Total / 3.0f;
Console.WriteLine("{0} {1} {2} {3} {4:f1}", Kor, Eng, Math, Total, Average);
}
}
}