2013-10-16 96 views
-8

這是我的計劃,我在C#在Visual Studio中寫道2010旗艦版和2008團隊系統:爲什麼Console.Read()返回輸入的數字?

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(); 
    } 
} 

這是結果:

輸入一個數字:你輸入:53

這可能如何?

+2

如果按'Q',您會發生什麼? – SLaks

+2

你得到的ANSI字符爲5。 – Tim

+0

字符和整數....你輸入一個字符沒有轉換和5只是映射到ASCII字符數53.沒有一個轉換器,你5等於53.輸出所需。 – Vogel612

回答

4

轉換爲字符代碼。請嘗試:

a = int.Parse(Console.ReadLine()); 
13

由於documentation明確指出,Read()返回您鍵入的Unicode碼點的索引。

+0

該文檔還提供了一個通過'Convert.ToChar'運行返回值的示例。 – jltrem

+0

我在該頁面的任何地方都看不到「Unicode」。所以Unicode部分必須來自c#在Unicode中完成所有事情。 – gunr2171

0

嘗試使用此方法達到自己的目標:

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(); 
    } 
} 
0

我是新的C#,但據我所知,在創建它,它是不需要初始化變量。編寫代碼的另一種方式可能是:

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(); 
    } 
} 
相關問題