首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Console.ReadKey读取大于9的数字

C# Console.ReadKey读取大于9的数字
EN

Stack Overflow用户
提问于 2011-04-11 13:42:11
回答 3查看 5K关注 0票数 1

我使用ConsoleKeyInfo在C#中工作,但是当我试图在控制台中写大于9的数字时,Console.ReadKey会有问题,例如

代码语言:javascript
复制
ConsoleKeyInfo number;
Console.Write("Write a number: ");
number = Console.ReadKey();

如果我想写10或11.控制台只读取"1“

我不想使用Console.ReadLine,因为我不想对每个数字按下"Enter“。

还有其他方法可以使用Console.ReadKey来等待1秒后才能继续吗?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2011-04-11 13:49:53

您能做的最好的就是使用Console.ReadLine()。程序不可能知道你已经完成了这个号码。

更新

如果您有一个固定长度的数字(即13位ISBN),您可以使用ReadKey,但如下所示:

代码语言:javascript
复制
string isbn = "";
while (isbn.Length < 13)
{
    isbn += Console.ReadKey().KeyChar;
}
票数 2
EN

Stack Overflow用户

发布于 2011-04-11 13:51:04

正如关于这个问题的评论所指出的,Console.ReadKey只从定义上读取一个键。如果您想从控制台获得更多的输入,则需要使用不同的函数。举个例子,试试这样的东西:

代码语言:javascript
复制
Console.Write("Write a number: ");
string line = Console.ReadLine();
int num = 0;
if (line != null)
    num = int.Parse(line);

这是一个开始,最小的错误检查。看看你能从那里得到什么。

票数 2
EN

Stack Overflow用户

发布于 2022-06-14 08:41:56

这个想法是,您必须多次调用cki = Console.ReadKey(true)

代码语言:javascript
复制
      ConsoleKeyInfo cki;
      string userNumber = "";

      while(true)
      {
        System.Console.WriteLine("Press more than one key:");
        cki = Console.ReadKey(true);

        if(cki.Key == ConsoleKey.Escape)
        {
          System.Console.WriteLine("GOOD BYE!");
          Environment.Exit(0);
        }
        else
        {
          if(char.IsNumber(cki.KeyChar) || cki.Key == ConsoleKey.Enter)
          {
            while(char.IsNumber(cki.KeyChar))
            {
              Console.Write(cki.KeyChar);
              userNumber += (cki.KeyChar).ToString();
              cki = Console.ReadKey(true);  // !!! Main idea 
            }
              System.Console.WriteLine();
              System.Console.WriteLine($"Your number is: {userNumber}");
              Environment.Exit(0);
          } 
          else
          {
            System.Console.WriteLine("Wrong symbol! Input a number!");
          }
        }
      }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5622189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档