2016-04-13 16 views
-1

これは私の単純なC#コンソールアプリケーションです。ユーザーからの入力を取得します。私は整数として入力したいと思っていますが、整数を入力するとエラーが表示されます。もう一つのapprochは、console.readlineがintとstringの両方を入力として受け取るかどうかです。コンソールアプリケーションの入力と出力

namespace ConsoleApplication1 
{ 
    class Program 
    { 

    static void Main(string[] args) 
    { 
     string firstname; 
     string lastname; 
     string birthdate; 
     string addressline1; 
     string adressline2; 
     string city; 
     string stateorprovince; 
     int ziporpostalcode; 
     string country;   
     ziporpostalcode =int.Parse(Console.ReadLine());   
    } 
} 
} 
+1

単に優しい先端、あなたはこのページの上に読むことをお勧めします:[ハウツー-ASKガイド](https://stackoverflow.com/help/how-to-ask)ので、質問が簡単に答えることができ、できるだけ明確であることを常に確認することができます。あなたが抱えている問題を修正するためにあなたがした努力と、それらの修正を試みたときに何が起こったのかを必ず含めてください。ショーコードとエラーメッセージも忘れないでください! –

+1

問題について知っていることが「***エラー***を示している」場合は、エラーを修正するのに役立つことはできません。どういう意味ですか? –

答えて

2

あなたはその 32ビット符号付き整数に相当する数の文字列表現に変換する 責任がある、int.Parseのための代わりにint.TryParseを使用する必要があります。戻り値はfalseを返す他に、 操作が成功したかどうかを示します(変換が失敗した)

だからあなたのコードは次のようになりますことがあります。

int ziporpostalcode; 
if (int.TryParse(Console.ReadLine(), out ziporpostalcode)) 
{ 
    Console.WriteLine("Thank you for entering Correct ZipCode"); 
    // now ziporpostalcode will contains the required value 
    // Proceed with the value 
} 
else { 
    Console.WriteLine("invalid zipCode"); 
} 
Console.ReadKey(); 
0

候補]の方法。

int.TryParseを入力してintへの入力を検証してください。

var input =int.Parse(Console.ReadLine());  
if(int.TryParse(input, out ziporpostalcode) 
{ 
    // you have int zipcode here 
} 
else 
{ 
    // show error. 
} 
+0

構文エラー、あなたが間違っています –

+0

ああ...はい、ありがとうございました。今すぐ修正。 –

0
 Console.WriteLine("Enter Zip Code"); 
     try 
     { 
      ziporpostalcode = int.Parse(Console.ReadLine()); 
      Console.WriteLine("You Enter {0}", ziporpostalcode); 
     } 
     catch (Exception) { 
      Console.WriteLine("Error Occured, Enter only Number"); 
     } 

     Console.ReadLine(); 
+0

if else condtionまたはexeptionを使用しないで簡単にする方法 –

関連する問題