为什么输出不是我想要的......
以下是代码:
int num;
Console.WriteLine("Please input age: ");
num = Console.Read();
Console.WriteLine(num);
例如我输入5,输出是53.它需要是5,代码上发生了什么。有人可以解释一下吗?谢谢。
答案 0 :(得分:8)
因为Console.Read()返回流中下一个字符的字符代码。 ASCII字符代码'5'是53。
您需要将整行读作字符串
string str = Console.Readline();
然后Parse()
或TryParse()
它。
int num;
try
{
num = int.Parse(str);
}
catch(Exception e)
{
Console.Writeline("Not a number!");
}
答案 1 :(得分:4)
根据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);
}