为什么Console.Read()不返回输入的数字?
这是我在Visual Studio 2010 Ultimate和2008 Team System中用C#编写的程序:
class Program { static void Main(string[] args) { int a=0; Console.WriteLine("Enter a number: "); a = Console.Read(); Console.WriteLine("you Entered : {0}",a); Console.ReadKey(); } }
这就是结果:
输入一个数字:5您输入:53
这怎么可能?
转换为字符代码。 尝试:
a = int.Parse(Console.ReadLine());
正如文档明确指出的那样, Read()
返回您键入的Unicode代码点的索引。
您观察到的行为在文档中进行了描述 。
试着这个来实现你的目标:
class Program { static void Main(string[] args) { Console.WriteLine("Enter a number: "); ConsoleKeyInfo a = Console.ReadKey(); Console.WriteLine("you Entered : {0}",a.KeyChar); Console.ReadKey(); } }
我是C#的新手,但据我所知,在创建变量时不必初始化变量a。 编写代码的另一种方法可能是:
class Program { static void Main(string[] args) { int a; Console.WriteLine("Enter a number: "); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("you Entered : {0}", a); Console.ReadKey(); } }