首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Console.Read()和Console.ReadLine() FormatException

Console.Read()和Console.ReadLine() FormatException
EN

Stack Overflow用户
提问于 2013-08-21 10:11:34
回答 5查看 8.4K关注 0票数 1
代码语言:javascript
复制
using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Int32 a = 3;
            Int32 b = 5;

            a = Console.Read();

            b = Convert.ToInt32(Console.ReadLine());

            Int32 a_plus_b = a + b;
            Console.WriteLine("a + b =" + a_plus_b.ToString());
        }
    }
}

我在ReadLine()函数中得到一条错误消息:

FormatException未被处理。

有什么问题吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-08-21 10:29:29

我想这仅仅是因为在输入第一个数字之后按ENTER键。让我们分析你的代码。您的代码读取您输入到a变量的Read()函数所做的第一个符号。但是,当您按enter键时,ReadLine()函数返回空字符串,将其转换为整数是不正确的格式。

我建议您使用ReadLine()函数来读取两个变量。所以输入应该是7->[enter]->5->[enter]。然后得到a + b = 12作为结果。

代码语言:javascript
复制
static void Main(string[] args)
{
    Int32 a = 3;
    Int32 b = 5;

    a = Convert.ToInt32(Console.ReadLine());
    b = Convert.ToInt32(Console.ReadLine());

    Int32 a_plus_b = a + b;
    Console.WriteLine("a + b =" + a_plus_b.ToString());
}
票数 3
EN

Stack Overflow用户

发布于 2013-08-21 10:18:16

我觉得你应该把:

b = Convert.ToInt32(Console.ReadLine());

试着抓住块中。

祝好运。

票数 1
EN

Stack Overflow用户

发布于 2013-08-21 10:22:00

代码语言:javascript
复制
namespace ConsoleApplication1
{
class Program
{
    static void Main(string[] args)
    {
        Int32 a = Convert.ToInt32(Console.ReadLine());
        Int32 b = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("a + b = {0}", a + b);
    }
}

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18354660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档