2016-12-02 1 views
0

이것은 매우 간단한 코드입니다. 하지만 C#에서 콘솔 앱을 작성한 것은 이번이 처음입니다. 이 두 줄을 사용하여 간단히 말해C : Console.Read 오류가 발생했습니다.

int iRoll; 
    Console.WriteLine("Roll Dice and input number for your move"); 
    iRoll = Console.Read(); 

나는 (이 숫자 패드 나 키보드의 경우는 문제가되지 않습니다) iRoll의 값이 53 인에 cmd 창에서 숫자 5를 입력합니다. 왜 이런거야?

+1

'int.TryParse (Console.ReadLine(), out iRoll); ' – mybirthname

답변

9

Console.Read은 입력 스트림에서 읽은 문자가 들어있는 int을 반환합니다.

string line = Console.ReadLine(); 

그런 다음 int.TryParse를 사용하는 int로 문자열을 구문 분석 할 수 있습니다 :

int iRoll; 
if (int.TryParse(line, out iRoll)) { 
    // use iRoll 
} else { 
    // handle invalid input 
} 
당신이 선을 포함하는 문자열을 원하는 대신 ReadLine를 사용해야하는 경우 문자 5는 53

로 인코딩됩니다

+0

이것은 수정하기 쉽고 반복하기 쉽습니다. 누가 내 모션을 삭제하겠습니까? – xarzu

1

'5'문자의 ASCII 코드를 읽었 기 때문입니다. 이 값은 53입니다.

0

대신

Console.ReadLine(); 

을 사용할 수 있습니다. 예외를 생성하여 정수만 허용합니다.

관련 문제