2017-02-21 4 views
2

파이썬에서 C#으로 전환하고 ReadLine() 기능에 문제가 있습니다. 이된다C#에서 입력을 사용자에게 묻는 방법

x = int(input("Type any number: ")) 

C에서 # : 내가 입력 파이썬 사용자를 물어보고 싶은 경우에 나는 이런 식으로했다

int x = Int32.Parse (Console.ReadLine()); 

을하지만이를 입력하면 나는 오류 얻을 :

int x = Int32.Parse (Console.ReadLine("Type any number: ")); 

사용자에게 C#으로 내용을 입력하도록 요청하려면 어떻게해야합니까?

Console.WriteLine("Type any number: "); // or Console.Write("Type any number: "); to enter number in the same line 
int x = Int32.Parse(Console.ReadLine()); 

을하지만 일부 편지 (또는 int에 구문 분석 할 수없는 또 다른 기호)를 입력하면 당신은 Exception을 얻을 것이다 : 이것에

int x = Int32.Parse (Console.ReadLine("Type any number: ")); 

을 :

+0

오류가 무엇입니까 :이 코드를 사용하십니까? – A3006

+0

당신은 먼저'Console.WriteLine()'과'Console.ReadLine()' – Pikoh

+0

'Console.Write ("숫자를 입력하십시오 :");'또는'Console.WriteLine'이 필요합니다. 그러면 읽는 줄을 할 수 있습니다 – pinkfloydx33

답변

3

이를 변경해야합니다.

(더 나은 옵션) : 유형 데이터 유형입니다

Console.WriteLine("Type any number: "); 
int x; 
if (int.TryParse(Console.ReadLine(), out x)) 
{ 
    //correct input 
} 
else 
{ 
    //wrong input 
} 
+0

하나 꼬마 도깨비 물건 ... 당신이 입력에 대해 잘 모르겠다면 (좋은 생각입니다) 먼저 Parse를 시도해보십시오 ... – A3006

+0

@ A3006, thanks, edited –

-1

당신이 캐스팅 할이

Console.WriteLine("Type any number: "); 
int x = Int32.Parse (Console.ReadLine()); 
0
Console.WriteLine("Type any number"); 
string input = Console.ReadLine(); 
int x; 
if (int.TryParse(input, out x)) 
{ 
    //do your stuff here 
} 
else 
{ 
    Console.WriteLine("You didn't enter number"); 
} 
0
Console.WriteLine("Type any number: "); 
string str = Console.ReadLine(); 
Type a = Type.Parse(str); 

을 시도 입력 된 값이 정확한지 확인하려면 사용자 입력. 포럼으로 전환하기 전에 C#을 사용하는 책을 거의 읽지 않는 것이 좋습니다.

0

더 일반적인 나는 당신이 지정한 것처럼 동작하도록 (C#에서 정적 개체를 확장 할 수 없기 때문에) 추가 개체를 만드는 것이 좋습니다. 물론

public static class ConsoleEx 
{ 
    public static T ReadLine<T>(string message) 
    { 
     Console.WriteLine(message); 
     string input = Console.ReadLine(); 
     return (T)Convert.ChangeType(input, typeof(T)); 
    } 
} 

는 출력 유형에 대한 제약을 포함하지 않기 때문에이 코드는 무료로 오류가 아닙니다하지만 여전히 그것은 아무 문제없이 몇 가지 유형으로 캐스팅됩니다.

예를 들면.

static void Main() 
{ 
    int result = ConsoleEx.ReadLine<int>("Type any number: "); 
    Console.WriteLine(result); 
} 

>>> Type any number: 
<<< 1337 
>>> 1337 

Check this online