有没有办法输入数字而不立即显示它们?

时间:2014-11-06 15:51:21

标签: c# .net console-application

我想输入10个数字,然后将它们显示在1行中,如下所示: 1,4,5,2,456,23,...等等..

并且当我进入它们时它一直在写它们,最后当它应该显示1行中的所有数字时它只显示最后一个。

我知道可以使用随机数字,但是当我自己输入时,我不知道如何不显示它们或者将它们保持在1行,如果它甚至可能? / p>

int a;
int x;
Console.WriteLine("a:");
a = int.Parse(Console.ReadLine());
x = 10;
for (int i = 0; i < x; i++)
{
    a = int.Parse(Console.ReadLine());
}
Console.ReadKey();

3 个答案:

答案 0 :(得分:5)

你可以使用

Console.ReadKey(true)

它从控制台读取一个键并且不显示它。

你可以使用它来从控制台读取单词而不显示它

public static string ReadHiddenFromConsole()
{
    var word = new StringBuilder();
    while (true)
    {
        var i = Console.ReadKey(true);
        if (i.Key == ConsoleKey.Enter)
        {
            Console.WriteLine();
            break;
        }
        if (i.Key == ConsoleKey.Backspace)
        {
            if (word.Length > 0)
            {
                word.Remove(word.Length - 1, 1);
                Console.Write("\b \b");
            }
        }
        else
        {
            word.Append(i.KeyChar);
            Console.Write("*");
        }
    }
    return word.ToString();
}

答案 1 :(得分:2)

您可以使用此代码:

static void Main(string[] args)
        {
            int length = 10;
            int[] myNumbers = new int[length];

            for (int i = 0; i < length; i++)
            {
                Console.Write("Enter number:" );
                myNumbers[i] = Convert.ToInt32(Console.ReadLine());
                Console.Clear();
            }

            Console.WriteLine("Your numbers: {0}", string.Join(",", myNumbers));
        }

答案 2 :(得分:1)

我不知道如何在最后一行写出它们?

嗯,你需要在输入时保存它们:

int num;
var nums = new List<int>();

while (nums.Count < 10)
{
    Console.Write("Enter: ");
    if (int.TryParse(Console.ReadLine(), out num))
    {
        nums.Add(num);
        Console.Clear();
    }
}

Console.WriteLine(string.Join(", ", nums));