控制台.NET的输出错误

Rya*_*yan 0 .net c#

为什么输出不是我想要的......

这是代码:

int num;
Console.WriteLine("Please input age: ");
num = Console.Read();
Console.WriteLine(num);
Run Code Online (Sandbox Code Playgroud)

例如,我输入5,输出是53.它需要是5,代码上发生了什么.有人可以解释一下吗?谢谢.

Arm*_*yan 8

因为Console.Read()返回流中下一个字符的字符代码.ASCII字符代码'5'是53.

您需要将整行读作字符串

string str = Console.Readline();
Run Code Online (Sandbox Code Playgroud)

然后Parse()它或TryParse()它.

 int num;
 try
 {  
     num = int.Parse(str);
 }
 catch(Exception e)
 {
     Console.Writeline("Not a number!");
 }
Run Code Online (Sandbox Code Playgroud)