Console.Read在C#中失败

时间:2016-12-02 12:49:14

标签: c#

这是一个非常简单的代码。但这是我第一次用C#编写控制台应用程序。简单地说,使用这两行

    int iRoll;
    Console.WriteLine("Roll Dice and input number for your move");
    iRoll = Console.Read();

如果我从cmd窗口输入数字5(无论是来自数字键盘还是键盘),iRoll的值是53.为什么会这样?

2 个答案:

答案 0 :(得分:9)

Console.Read返回包含从输入流中读取的字符的int。字符5编码为53。

如果您想要包含该行的字符串,请改为使用ReadLine

string line = Console.ReadLine();

然后,您可以使用int.TryParse

将字符串解析为int
int iRoll;
if (int.TryParse(line, out iRoll)) {
    // use iRoll
} else {
    // handle invalid input
}

答案 1 :(得分:1)

这是因为你读了' 5'的ASCII码。焦炭。这是53值。