Console.Read()方法不等待

时间:2014-11-04 06:35:00

标签: c#

static void Main(string[] args)
{
    countValues();
}

static void countValues()
{
    float value1;
    float value2;
    float result;
    Console.WriteLine("Give a number");
    value1 = Convert.ToSingle(Console.Read());
    Console.WriteLine("Give another number");
    value2 = Convert.ToSingle(Console.Read());

    result = value1 + value2;

    Console.WriteLine("You gave numbers " + value1 + " and " + value2);
    Console.WriteLine("Together these values are " + result);

    Console.Read();
}

有人可以告诉我这段代码有什么问题吗?我上次使用C#已经很久了,我已经忘记了它的一切。当我运行这段代码时,它会询问一个数字。当我输入一些数字时,它会打印所有内容,而不会要求第二个。

3 个答案:

答案 0 :(得分:5)

Console.Read()只读取一个字符。因此,您的代码只会读取两个字符,每个数字一个数字。

如果您希望用户必须按Console.ReadLine()键以终止输入单个号码,请使用Enter

答案 1 :(得分:1)

Console.Read()和Console.ReadLine();

的问题

使用Console.ReadLine();

static void countValues()
{

    float value1;
    float value2;
    float result;
    Console.WriteLine("Give a number");
    value1 = Convert.ToSingle(Console.ReadLine());
    Console.WriteLine("Give another number");
    value2 = Convert.ToSingle(Console.ReadLine());

    result = value1 + value2;

    Console.WriteLine("You gave numbers " + value1 + " and " + value2);
    Console.WriteLine("Together these values are " + result);

    Console.Read();
}

答案 2 :(得分:0)

老实说,我知道C#较少,但我知道这个问题很可能与第一个视图中的'Console.Read()'函数相对应。实际上,它是。所以,我想说的是你应该知道你写得好的代码(每行代表什么以及它是如何工作的),然后你可能会发现很容易解决这个问题。