Console.Read被忽略了

Mit*_*ann 10 c#

我是C#语言的新手,并且刚刚开始学习它在XNA Game Studio for X-box上使用.

我对Java和C++有一些小经验,所以我不是一个TOTAL菜鸟.这就是为什么这个问题对我来说太令人沮丧了.

我创建了一个简单的代码,用于添加用户输入的两个数字.非常简单的东西,但对于我感觉到的任何新语言,这是一个良好的第一步.

我已经声明了我的变量,并且正在尝试使用Console.Read()从用户那里获取要添加的数字.到目前为止,代码输出我想要的消息,然后停止并读取用户的单个输入.在那之后,它变得混乱.控制台输出下一条消息,读取一些随机数(无输入),然后将它们加在一起并立即输出.

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Add
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Please enter the first number to add: ");
            int firstNumber = Console.Read();

            Console.WriteLine("Please enter the second number to add: ");
            int secondNumber = Console.Read();

            int Sum = firstNumber + secondNumber;
            Console.WriteLine("The total of the two numbers is: " + Sum);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

样品运行:

请输入要添加的第一个号码:

2

请输入要添加的第二个号码:

这两个数字的总和是:63


请输入要添加的第一个号码:

3

请输入要添加的第二个号码:

这两个数字的总和是:64


它继续这样,就好像第二个数字是61.

在此先感谢您的帮助!

Tud*_*dor 11

那是因为它正在从控制台读取下一个字符,然后将其转换为int,这将给出ASCII值,而不是数值.所以输入2将被解释为字符'2',使用ascii代码50.尝试这样做:

int firstNumber = Int32.Parse(Console.ReadLine());
Run Code Online (Sandbox Code Playgroud)


Gar*_*han 8

Console.Read读一个字符.因此,当您输入"2"并按Enter键时,您将提供(1)字符'2',其ASCII值为50,然后(2)回车字符,其ASCII值为13.这些是... 63. :-)