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未处理。
有什么问题?
答案 0 :(得分:3)
我想这只是因为在输入第一个数字后按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());
}
答案 1 :(得分:1)
答案 2 :(得分:1)
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);
}
}
}
答案 3 :(得分:1)
你想要做的是使用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.
}
}
}
}
答案 4 :(得分:0)
你可以试试这个:
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
}