1

我试图将通过 Console.Read() 获得的值保存在一个整数中,但是无论我在键盘上输入什么,控制台总是给出 13。我试图复制一个示例代码,它肯定必须工作,但我仍然只有 13 作为价值。

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Read();
            int Test = Console.Read();
            Console.WriteLine(Test);
        }
    }
} 

在我输入一个数字后,它总是在控制台中显示“13”。

4

3 回答 3

2

Console.Read()从输入流中读取第一个字符。

在您的情况下,您正在尝试转换输入流的第二个字符(即在 first 之后Console.Read()),Carriage return其 ASCII 值为 13,Test类型为 的变量,以整数格式int存储carriage return。IE13

如果要转换输入流中的第一个字符,请尝试以下操作

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int Test = Console.Read();  //Or you can use Console.ReadLine() to read entire line.
            Console.WriteLine(Test);//Print first character of input stream
        }
    }
} 
于 2020-01-30T08:20:31.100 回答
1

在这里,您必须使用 Console.ReadLine 来读取数字。由于 Console.ReadLine 返回字符串,您必须将其转换为 Int32。以下代码将解决该问题

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
             int Test = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine(Test);
        }
    }
} 
于 2020-01-30T08:43:33.467 回答
0

尝试将其更改为:

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int Test = Console.ReadLine();
            Console.WriteLine(Test);
        }
    }
} 

由于 13 是输入的关键代码,因此您可能会通过尝试阅读整行来获得该数字。

于 2020-01-30T08:29:50.850 回答