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了未处理。
问题是什么?
我想这是仅仅因为你按下ENTER键键入第一个数字之后 。 让我们分析代码。 你的代码读取您输入的第一个符号a
变量Read()
函数的作用。 但是,当你按回车键ReadLine()
函数返回空字符串,这是不正确的格式,将其转换为整数。
我建议你使用ReadLine()
函数读取两个变量。 所以输入应该是7->[enter]->5->[enter]
。 然后你会得到a + b = 12
作为结果。
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());
}
我认为你需要把:
b = Convert.ToInt32(Console.ReadLine());
里面的try-catch块。
祝好运。
你想要做的就是使用尝试捕捉,因此,如果有人提出在什么不对,你可以找到
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Int32 a = 3;
Int32 b = 5;
a = Console.Read();
try
{
b = Convert.ToInt32(Console.ReadLine());
Int32 a_plus_b = a + b;
Console.WriteLine("a + b =" + a_plus_b.ToString());
}
catch (FormatException e)
{
// Error handling, becuase the input couldn't be parsed to a integer.
}
}
}
}
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);
}
}
}
你可以试试这个:
Int32 a = 3;
Int32 b = 5;
if (int.TryParse(Console.ReadLine(), out a))
{
if (int.TryParse(Console.ReadLine(), out b))
{
Int32 a_plus_b = a + b;
Console.WriteLine("a + b =" + a_plus_b.ToString());
}
else
{
//error parsing second input
}
}
else
{
//error parsing first input
}