2016-06-21 2 views
-3

방금 ​​C#을 배우기 시작했고 여기에 내가 갇혀있다. 코드에서 만든 것과 비슷한 배열이 필요하지만 정수 데이터 형식이 필요합니다. 이 같은 뭔가 :int 배열 안에 사용자 입력 저장

int[] answer = new int[a]; 
for (int i = 0; i < answer.Length; i++) 
{ 
    answer[i] = Convert.ToInt32(Console.ReadLine()); 
} 

내가 경고 메시지가 있어요 ". 입력 문자열이 올바른 형식이 아니었다"

정수 데이터 형식의 사용자 입력을 배열 answer에 저장하는 가장 쉬운 방법은 무엇입니까?

+2

시도해보십시오. int x = Int32.Parse (Console.ReadLine()); ? –

+0

예,하지만 여전히 동일한 경고 출력이 표시됩니다 (입력 문자열의 형식이 올바르지 않음). – Adi543

+0

플래그 C#을 추가하십시오. 나는 그런 깃발이있을 것이라고 확신한다. – user31264

답변

2

사용 int.TryParse는 : 변환이 실패 할 경우 변환이 제로에 성공, 또는 경우

int[] answer = new int[a]; 
for (int i = 0; i < answer.Length; i++) 
{ 
    int.TryParse(Console.ReadLine(), out answer[i]); 
} 

이 방법은 Console.ReadLine()에 포함 된 수의 32 비트 정수 값에 상응를 반환합니다. 따라서 변환에 실패하면 0을 반환하므로 더 이상 오류가 발생하지 않습니다.

+0

입력 한 번호와 정확히 일치하는 번호를 인쇄합니다. 귀하의 코드가 작동합니다, 타이. – Adi543

-1

학습을 시작한 것은 분명하므로 코드를 최대한 단순하게 유지해야하며 행마다 한 가지만 시도해야합니다.

배열 콘솔 입력으로부터 전환하여 동작을 수행하는 간단한 예 :

 // get user input from console as a string 
     string userInput = Console.ReadLine(); 

     // parse user input into an integer 
     int oneNumber = int.Parse(userInput); 

     //how many numbers will you have? 
     int amountOfNumbers = 10; 

     //declare an array which can hold that many numbers 
     int[] numbers = new int[amountOfNumbers]; 

     //which position to save the userInput number at? 
     int positionToSaveAt = 0; 

     //assign oneNumber to a particular position inside the array 
     numbers[positionToSaveAt] = oneNumber; 
+0

Hmm 간단한 작업을 OP에 설명하려고하면 분명히 downvote derserves? – pijemcolu

+0

저는 OP의 질문에 대답하지 않고 코드를 다시 작성한다는 것이 문제라고 생각합니다. 그들이 요구 한 것이 아니 었습니다. – Draken

0

넌 SetValue는 물론 int.tryParse로 할 수있다. 이 경우 그들은 둘 다 잘 작동합니다.

int[] answer = new int[a]; 
for (int i = 0; i < answer.Length; i++) 
{ 
    array2.SetValue(Convert.ToInt32(Console.ReadLine()), i); 
}