C# 我的输入值不是我插入的数字

C# 我的输入值不是我插入的数字,c#,C#,我试着做一个乘数。当我插入数字5时,它神奇地变为53。2号的时候是50号。看不出我犯了什么错误 public static void Main(string[] args) { Console.WriteLine("Enter the number: "); int num = Console.Read(); Console.WriteLine(); int i; for (i = 0; i <= 10; i++) { in

我试着做一个乘数。当我插入数字5时,它神奇地变为53。2号的时候是50号。看不出我犯了什么错误

public static void Main(string[] args)
{
    Console.WriteLine("Enter the number: ");
    int num = Console.Read();
    Console.WriteLine();
    int i;

    for (i = 0; i <= 10; i++)
    {
        int result = num * i;
        Console.WriteLine("{0}*{1}={2}", num, i, result);
    }
}
publicstaticvoidmain(字符串[]args)
{
Console.WriteLine(“输入号码:”);
int num=Console.Read();
Console.WriteLine();
int i;
对于(i=0;i请参阅控制台的。读取
。它从输入流返回下一个字符。通过将其分配给
int
,可以将
char
转换为
int
,从而生成该字符的代码

请使用与
int.Parse
结合使用的
Console.ReadLine
方法:

int num = int.Parse(Console.ReadLine());
这将以
字符串的形式返回整个输入,
int.Parse
将尝试从中创建
int

使用Console.ReadLine()方法

publicstaticvoidmain(字符串[]args)
{
Console.WriteLine(“输入号码:”);
字符串输入=Console.ReadLine();
int-num;
//Console.WriteLine();
if(Int32.TryParse(输入,输出数值))
{
int i;

对于(i=0;我将
int num=Console.Read();
更改为
int num=Convert.ToInt32(Console.ReadLine());
它的ASCII等价值5整数转换与
控制台。ReadLine
在这里工作正常:。我开始转换,但它不起作用。因此我尝试不使用它。当某些东西不能按预期工作时,您应该先阅读函数/lib的文档。如果您这样做,您会立即明白我在那里这里没有“魔力”。因此它不能替代使用web搜索引擎搜索琐碎信息。实际上,应该使用
TryParse
as
Parse
在用户输入非数字字符串时会抛出异常。类似于
if(int.TryParse(Console.ReadLine(),out int num))
,然后在
else
块中添加一些处理代码。@T.Linnell当然,我希望我的回答尽可能简洁,因为根据问题的性质,OP必须是初学者,因此我不想添加任何其他不必要的噪音。我假设有效输入In这个答案。@T.Linnell,您忘记添加日志记录和设置项目;)@Balázs:当然,这就是我投票的原因,我只是想提一下它的完整性,作为OP采取的下一步。@Sinatr:是吗?OP代码的范围是它为给定的用户输入吐出一个时间表-他们发布的代码似乎是整个代码库。我认为在一个如此小的项目中,日志记录是不必要的。Console.ReadLine()将来自控制台的所有输入作为字符串,所以您需要转换为整数。Int32.TryParse()将字符串转换为等效的32位带符号整数,并将其分配给out参数。否则,您知道输入不是整数。谢谢
 int num =Convert.ToInt32(Console.ReadLine());
 public static void Main(string[] args)
    {
        Console.WriteLine("Enter the number: ");
        string input = Console.ReadLine();
        int num;
        //  Console.WriteLine();
        if (Int32.TryParse(input, out num))
        {
            int i;
            for (i = 0; i <= 10; i++)
            {
                int result = num * i;
                Console.WriteLine("{0}*{1}={2}", num, i, result);
            }
        }
        else
        {
            //not an integer
            Console.WriteLine("not an integer");
        }
        Console.ReadLine();

    }