在Console.Read()上输出错误的整数
本文关键字:输出 错误 整数 Console Read | 更新日期: 2023-09-27 18:08:12
我试图输出一个变量,我从用户那里得到一个输入,但是我得到了错误的数字。
下面是我的代码:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace sequence
{
class Program
{
static void Main(string[] args)
{
int userInput = Console.Read();
Console.WriteLine("User input is: {0}", userInput.GetType());
Console.WriteLine("User input is: {0}", userInput);
}
}
}
输出:3
User input type is: System.Int32
User input is: 51
Press any key to continue
如果输入4,得到52。5、53等等
使用返回字符串的Console.ReadLine()
,您需要转换为int
试试这个
namespace sequence
{
class Program
{
static void Main(string[] args)
{
var input = Console.ReadLine();
int userInput;
if (!int.TryParse(input, out userInput))
{
Console.WriteLine("You have entered invalid number");
}
else
{
Console.WriteLine("User input is: {0}", userInput.GetType());
Console.WriteLine("User input is: {0}", userInput);
}
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
}
}
这是因为Console.Read()
返回正在读取的字符的整数代码。你必须从这个字符中减去48才能得到实际的数字。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace sequence
{
class Program
{
static void Main(string[] args)
{
int userInput = Console.Read();
Console.WriteLine("User input is: {0}", userInput.GetType());
Console.WriteLine("User input is: {0}", userInput - 48);
}
}
}