我正在尝试输出一个我作为用户输入的变量,但是输错了数字。
到目前为止,这是我的代码:
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等等。
答案 0 :(得分:4)
使用返回字符串的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();
}
}
}
答案 1 :(得分:0)
那是因为Console.Read()
返回正在读取的字符的整数代码。您必须从char中减去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);
}
}
}