티스토리 뷰

카테고리 없음

[씨#] C # ReadLine 문제

필살기쓰세요 2021. 1. 5. 14:23

먼저 Console.ReadLine()변수를 설정하십시오 . 그런 다음 설정 한 변수가 비어 있거나 null이 아닌지 확인하십시오. 또한 변환 성공 여부에 따라 true 또는 false를 반환하므로 Int16 클래스의 TryParse 메서드를 사용하는 것이 좋습니다.

또한 ReadLine문자열을 켤 수 있으므로 정수 로 변환 할 필요가 없습니다 . ReadLine이 이미 이므로 String변환이 필요하지 않습니다. 그러나 정수가 필요한 경우 다음을 시도하십시오.

String lineIn = Console.ReadLine();

if (!String.IsNullOrEmpty(lineIn))
{
    Int16 myNum;
        if (Int16.TryParse(lineIn , out myNum))
            {
                        switch(myNum)
                                    {
                                                        case 1:
                                                                            ...
                                                                                                default:
                                                                                                                    ...
                                                                                                                                }
                                                                                                                                    }
                                                                                                                                    }
                                                                                                                                    
-------------------

Int16.TryParse방법을 확인하십시오 .

이렇게하면 사용자 입력이 허용되는 범위 Int16(음수 32768에서 양수 32767) 의 숫자가 아닌 경우 프로그램을 종료하거나 다른 작업을 수행 할 수 있습니다.

샘플 코드는 MSDN 항목 ( Int16.TryParse Method ) 에서 찾을 수 있습니다 .

-------------------

나는 당신이 원하는 것이 int.Parse (...)라고 생각합니다.

-------------------

오류 처리를 위해 try catch 문을 사용할 수 있습니다 .

-------------------

TryParse :

string str;
short val;
while(!short.TryParse(str=Console.ReadLine(), out val))
{
    Console.WriteLine("Cant do that  >.>");
    }
    
-------------------

정수를 얻으려면 일반적으로 다음과 같은 재귀 함수를 사용합니다.

private int GetInt()
{
     try
          {
                   return int.parse(Console.Readline().Trim());
                        } 
                              catch (exception e) 
                                   {
                                            Console.WriteLine(string.format("{0} Please try again", e.message);
                                                     return GetInt();
                                                          }
                                                          }
                                                          


출처
https://stackoverflow.com/questions/1902765
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31