标签: console.readkey

Java中的Readkey

我是Java新手...在C#中是否有类似于ReadKey()的方法以避免控制台应用程序关闭?

谢谢

java console console.readkey

8
推荐指数
2
解决办法
3万
查看次数

java/clojure中的单字符控制台输入

如何从控制台读取单个字符/键而无需按Enter键?Sun的bug数据库中有一个旧条目声称无法在纯java中完成.我找到了这些方法

我希望magic-readkey.jar在我的类路径中添加一个,并编写几行代码,比如(def just-hit (com.acme.MagicConsole/read-char)).

java user-input clojure console.readkey

7
推荐指数
1
解决办法
2430
查看次数

如何检查控制台应用程序中是否按下了 CTRL 键 C#

我要启动一个控制台应用程序。问题是如何确定 CTRL 键是单独按下的,没有任何其他键。

using System;
using System.Text;

public class ConsoleKeyExample
{
   public static void Main()
    {

       ConsoleKeyInfo input;
       do
       {
           input = Console.ReadKey(true);
           StringBuilder output = new StringBuilder(String.Format("You pressed {0}",input.Key.ToString()));

           Console.WriteLine(output.ToString());
           if ((input.Modifiers & ConsoleModifiers.Control) != 0)
           {
               Console.WriteLine("CTRL Pressed");
            }
       } while (input.Key != ConsoleKey.Escape);
   }
  }
Run Code Online (Sandbox Code Playgroud)

我想监视 CTRL 键的行为。跟踪此代码后,我在 readkey 行上放置了一个检查点,但是当我按下 CTRL 时,什么也没有发生,但是当我按下任何其他键(如“K”)时,它开始从键盘读取键。

c# ctrl console.readkey

6
推荐指数
2
解决办法
6490
查看次数

ReadKey等待输入两次后的C#Console.ReadLine

我不明白我在这里缺少什么,但它似乎Console.ReadKey()仍然是活动的,并导致控制台Console.ReadLine()在调用后使用时输入两次Console.ReadKey().

我做了ReadKey()一个选择后上下搜索了如何逃避,但无济于事.

为了澄清,这是出乎意料的行为:当控制台弹出时,会向用户显示这三个选项作为示例.当用户输入"u"或"h"时,控制台不会等待; 它立即执行操作而无需用户按下Enter.

我做错了吗?

static void Main(string[] args)
{
    Console.WriteLine("u up");
    Console.WriteLine("h home");
    Console.WriteLine("x exit");
    Console.WriteLine("---------------------------------");
    Console.WriteLine("      [Enter Your Selection]");
    Console.WriteLine("---------------------------------");
    Console.Write("Enter Selection: ");
    ConsoleKeyInfo selection;
    Console.TreatControlCAsInput = true;
    int value;
    selection = Console.ReadKey();
    if (char.IsDigit(selection.KeyChar))
    {
        value = int.Parse(selection.KeyChar.ToString());
        value -= 1;
        Console.WriteLine("You've entered {0}", value);
    }
    else
    {
        switch (selection.Key)
        {
            case ConsoleKey.U:
                blurp();
                break;

            case ConsoleKey.H:
                blurp();
                break;

            case ConsoleKey.X:
                System.Environment.Exit(0);
                break;

            default:
                Console.WriteLine("Invalid Input...");
                break; …
Run Code Online (Sandbox Code Playgroud)

c# console console.readkey console.readline

6
推荐指数
1
解决办法
2189
查看次数

没有按下按键时,ReadKey会执行某些操作

我试图运行我的代码直到Esc被按下.因此我ReadKey在我的控制台中使用

var input = Console.ReadKey();
do
{

} while (input.Key != ConsoleKey.Escape);
Run Code Online (Sandbox Code Playgroud)

但是在"ConsoleKey"它说,在'bool'中不可能使用ConsoleKey.我该如何解决这个问题?或者我应该使用什么呢?

c# console console-application console.readkey readkey

5
推荐指数
2
解决办法
7998
查看次数

Perl Term :: ReadKey with Arrow Keys

我在ReadMode('cbreak')中使用Term :: ReadKey来读取单个字符并根据输入执行操作.这适用于箭头键以外的所有其他键.当按下箭头键时,动作执行3次,我明白这是因为箭头键转换为'^ [[A'等...

如何将箭头键转换为ReadKey可以解释的任意单个值?

我尝试了以下代码,但它不起作用:

use Term::ReadKey;

ReadMode('cbreak');

my $keystroke = '';

while ($keystroke ne 'h') {

    print "Enter key: "; 

    #Read user keystroke 
    $keystroke = ReadKey(0);

    chomp($keystroke);


    if(ord($keystroke) == 27) {
         $keystroke = ('0');
    }
}
Run Code Online (Sandbox Code Playgroud)

这是基于建议的代码:

use Term::RawInput;
use strict;
use warnings;

my $keystroke = '';
my $special = ''; 

while(lc($keystroke) ne 'i' && lc($keystroke) ne 't'){

    my $promptp = "Enter key: ";

    ($keystroke,$special) = rawInput($promptp, 1);

    if ($keystroke ne '') {
        print "You hit the normal …
Run Code Online (Sandbox Code Playgroud)

perl console.readkey readkey

5
推荐指数
1
解决办法
1918
查看次数

如何将Console.Readkey转换为int c#

我试图将用户输入密钥转换为int,用户将输入1到6之间的数字.

这是我到目前为止坐在一个方法中,它没有工作,但抛出格式异常是未处理的.

        var UserInput = Console.ReadKey();



        var Bowl = int.Parse(UserInput.ToString());

        Console.WriteLine(Bowl);

       if (Bowl == 5)
        {
            Console.WriteLine("OUT!!!!");
        }
        else
        {
            GenerateResult();
        }

    }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

c# int console.readkey

4
推荐指数
1
解决办法
2万
查看次数

帕斯卡的readkey有什么不对劲的地方吗?在C或C ++中?

我正在寻找一个等待用户按下键的控制台功能。我希望它像Pascal的readkey一样;如仅控制台解决方案中那样。没有GUI库/图形库/窗口库/ WinApi调用(Windows)。它应该是跨平台的,并且(最好)是C std库或C ++类库的一部分。那么,有没有这样的函数/类方法?

c c++ console pascal console.readkey

3
推荐指数
1
解决办法
8917
查看次数

使用Console.ReadKey读取Unicode

是否可以向控制台应用程序提供Unicode输入,并通过Console.ReadKey()读取Unicode字符串/字符串?

我知道Unicode在通过其他方法读取输入时起作用,但不幸的是我需要使用ReadKey提供的"拦截"功能.

更新:

将U + 03BB(λ)等Unicode字符粘贴到控制台时,会读取3个键.

  1. Alt + NumPad1
  2. Alt + NumPad1
  3. Alt + NumPad8

我试图看看这是否是某种编码,但看不到任何东西.

.net console.readkey

2
推荐指数
1
解决办法
1247
查看次数

c#console snake卡在长按键上

几个月前我刚刚开始学习编程,并决定做一个控制台蛇游戏.对于一件事,一切都很有希望.

如果我的蛇向上走,我按下箭头并按下它,我的蛇就停止了,在我停止按下按钮后停留一段时间.

同样的事情发生,如果我的蛇向右走,我按下右箭头太久,我失去控制一段时间(但蛇不停止).它发生在各个方面(左,右,上,下).

我试图将cki与另一个ConsoleKeyInfo进行比较,但它们之间有轻微的延迟,但这并不重要.如果我按下按键,我的程序就会保留该位置并更新密钥.(至少我认为这就是问题)

这是Console.ReadKey的"功能"还是有某种方法可以解决这个问题?

请记住,我刚刚开始,所以我还不知道高级的东西.

只要我不按键超过1秒钟,一切都能完美无瑕.

   public void LiikutaMato() //movesnake
    {

        if (Console.KeyAvailable)
        {
                ConsoleKeyInfo cki;
                cki = Console.ReadKey(true); // <-- I believe this is where it gets stuck 

    }
Run Code Online (Sandbox Code Playgroud)

c# console console.readkey

1
推荐指数
1
解决办法
6454
查看次数

C#Console.ReadKey 1个字符滞后?

我正在尝试使用Console.ReadKey()函数来拦截用户的击键并重建他们在屏幕上键入的内容(因为我需要经常清除屏幕,经常移动光标,这似乎比如最全面的方法,确保他们输入的内容不会消失或出现在整个屏幕上的随机点.

我的问题是:在做类似的事情时,有没有其他人经历过1个字符"滞后",因为缺乏更好的术语?说我想输入单词"This".当我按"T"时,无论我等多久都没有出现.当我按"h"时,出现"T"."我","h"出现.直到我按下另一个键,即使该键是空格键,我输入的字母也不会出现.有没有人对我做错了什么有任何建议?我确定它与我如何使用Console.Readkey有关,我只是看不出有什么替代方法可行.我在下面附上了一个简单的小例子.

谢谢!

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;

    namespace ConsoleApplication2

{
    class Program
    {

        private static string userInput = "";
        static ConsoleKeyInfo inf;
        static StringBuilder input = new StringBuilder();

        static void Main(string[] args)
        {
            Thread tickThread = new Thread(new ThreadStart(DrawScreen));
            Thread userThread = new Thread(new ThreadStart(UserEventHandler));
            tickThread.Start();
            Thread.Sleep(1);
            userThread.Start();
            Thread.Sleep(20000);
            tickThread.Abort();
            userThread.Abort();
        }


        private static void DrawScreen()
        {
            while (true)
            {
                Console.Clear();
                Console.SetCursorPosition(0, 0);
                Console.Write("> " + userInput);
                Thread.Sleep(300);
            }
        }


        private static void UserEventHandler() …
Run Code Online (Sandbox Code Playgroud)

c# console.readkey

0
推荐指数
1
解决办法
920
查看次数