如何使用console.readline()读取整数?

时间:2017-11-25 12:07:34

标签: c# c#-to-vb.net

我是一名正在学习.NET的初学者。

我尝试在控制台读取线中解析我的整数,但它显示格式异常。

我的代码:

using System;
namespace inputoutput
{
    class Program
    {        
        static void Main()
        {
            string firstname;
            string lastname;
         // int age = int.Parse(Console.ReadLine());
            int age = Convert.ToInt32(Console.ReadLine());
            firstname = Console.ReadLine();
            lastname=Console.ReadLine();
            Console.WriteLine("hello your firstname is {0} Your lastname is {1} Age: {2}",
                firstname, lastname, age);
        }
    }
}

5 个答案:

答案 0 :(得分:1)

如果它抛出格式异常,则表示输入无法解析为int。您可以使用int.TryParse()之类的内容更有效地检查此问题。例如:

int age = 0;
string ageInput = Console.ReadLine();
if (!int.TryParse(ageInput, out age))
{
    // Parsing failed, handle the error however you like
}
// If parsing failed, age will still be 0 here.
// If it succeeded, age will be the expected int value.

答案 1 :(得分:0)

您的代码绝对正确,但您的输入可能不是整数,因此您收到错误。  尝试在try catch块中使用转换代码或使用int.TryParse。

答案 2 :(得分:0)

您可以处理除此类之外的无效格式;

        int age;
        string ageStr = Console.ReadLine();
        if (!int.TryParse(ageStr, out age))
        {
            Console.WriteLine("Please enter valid input for age ! ");
            return;
        }

答案 3 :(得分:0)

Console.WriteLine("Enter number ");
int day = int.Parse(Console.ReadLine());

答案 4 :(得分:-1)

您可以将数字输入字符串转换为整数(您的代码是正确的):

int age = Convert.ToInt32(Console.ReadLine());

如果您要处理文本输入,请尝试:

int.TryParse(Console.ReadLine(), out var age);