C# 为什么console.read得到了一个错误的号码?

C# 为什么console.read得到了一个错误的号码?,c#,C#,为什么没有得到我在程序中输入的号码?我输入了1,得到了49分 Random arrN = new Random(); int[] arr; arr = new int[100]; int n; bool game_result = false; for (int i = 0; i < 100; i++) { arr[i] = arrN.Next(0, 1000); } Console.WriteLine("what game do you want to play?\n1- g

为什么没有得到我在程序中输入的号码?我输入了1,得到了49分

Random arrN = new Random();
int[] arr;
arr = new int[100];
int n;
bool game_result = false;

for (int i = 0; i < 100; i++)
{
    arr[i] = arrN.Next(0, 1000);
}

Console.WriteLine("what game do you want to play?\n1- guessing one number.\n2- guessing numbers in range.\n3- exit");
n = Console.Read();
Random arrN=new Random();
int[]arr;
arr=新整数[100];
int n;
布尔博弈结果=假;
对于(int i=0;i<100;i++)
{
arr[i]=arrN.Next(0,1000);
}
Console.WriteLine(“你想玩什么游戏?\n1-猜一个数字。\n2-猜范围内的数字。\n3-退出”);
n=Console.Read();

控制台。Read
返回字符代码,而不是字符本身。
这将有助于:

var ch = (char)Console.Read(); // ch will contain '1'

Console.Read
返回一个表示输入字符的数字,因此需要将其转换为:

var n = Console.Read();
var ch = Convert.ToChar(n);
var value = int.Parse(ch.ToString());

Console.Read
reads
char
1
的char是49,因为intint intTemp=Convert.ToInt32(Console.Read());我把你的确切标题复制到谷歌上,并得到了很多副本。为什么不自己搜索答案呢?使用
Console.ReadLine()
而不是
Console.Read()
,并用
int n=int.Parse(Console.ReadLine())解析它注意:我建议的副本可能不是最清晰的,所以我的不好。也有没有安慰。阅读It,就像我尝试过?不,如果用户按下一个字母或标点符号会发生什么?我来自C++,在那里它取决于var的类型,所以当我的var是int时,我想有一些类似CIN的东西,它只会把这个数取到var。我应该如何在我的程序中这样做?