为什么输出不是我想要什么......错误输出控制台.NET
下面的代码:
int num;
Console.WriteLine("Please input age: ");
num = Console.Read();
Console.WriteLine(num);
比如我输入5,输出为53.需要5,代码上发生了什么。有人可以解释吗?谢谢。
为什么输出不是我想要什么......错误输出控制台.NET
下面的代码:
int num;
Console.WriteLine("Please input age: ");
num = Console.Read();
Console.WriteLine(num);
比如我输入5,输出为53.需要5,代码上发生了什么。有人可以解释吗?谢谢。
因为Console.Read()返回流中的下一个字符的字符代码。的“5”的字符的ASCII码是53.
你需要阅读整行作为一个字符串
string str = Console.Readline();
,然后Parse()
它或它TryParse()
。
int num;
try
{
num = int.Parse(str);
}
catch(Exception e)
{
Console.Writeline("Not a number!");
}
根据该Read方法的文档:
读取来自标准输入流的下一个字符。
因此,这将返回用户输入的单个字符的ASCII值。
你需要阅读整条生产线,并解析字符串返回到一个整数:
int num;
Console.WriteLine("Please input age: ");
num = int.Parse(Console.ReadLine());
Console.WriteLine(num);
当然如果用户输入一个无效的整数这个分析可能会失败。所以,你可以处理这样的:
int num;
Console.WriteLine("Please input age: ");
if (!int.TryParse(Console.ReadLine(), out num))
{
Console.WriteLine("Please enter a valid age");
}
else
{
Console.WriteLine(num);
}
这个例子和你研究ASP.NET的事实有一些关系吗?如果是,请解释。 – Tigran