2017-05-11 10 views
0

私はコンソールアプリケーションのビットコードを持っています。その仕事はユーザーから数値を取得して配列に追加することです。しかし、問題は、ユーザーが入力する数字の数がわからないことです。そこで、何らかのストップキーを追加することにしました。たとえば、十分な数がある場合、ユーザーは「N」を押してコードの別の部分に進むことができます。だから私の最初の問題は、キーが押されたときに未処理のフォーマット例外を与えないようにこのコードを作る方法です。Console.Readline()をintに構文解析してエラーが発生しました -

int[] arrayInt = new int[100]; 

for (int i = 0; i < arrayInt.Length; i++) 
{ 

    arrayInt[i] = int.Parse(Console.ReadLine()); 
    if (arrayInt[i] == Convert.ToChar (ConsoleKey.N)) 
    { 
     //for example 
     Console.WriteLine("You pressed n"); 

    } 
+3

'int.TryParse()'へ:あなたは私のコードから、この行を変更することができるよりも、それは、sensetive小文字ないしたい場合は? – xxbbcc

+0

または 'var item = Console.ReadLine(); if(item == Console.Key.N){break; )else {int.TryParse(item、arrayInt [I]); } '。 –

+0

質問ヘッダーを次のように編集する必要があります。Console.Readline()をintに解析する際のエラー –

答えて

1

あなただけの数字または文字をしたい場合は、Console.ReadLineの代わりにConsole.ReadKeyを使用する必要があります。

次のコードを使用して、必要なものを得ることができます。

ConsoleKey.Nを使用して「n」を確認します。しかしこれで、ユーザーは "N"を入力する必要があります。 "n"は機能しません。

if(input.Equals("n")){ 

if(input.ToLower().Equals("n")){ 
関連する問題