在我按<enter>键之前,在stdinput上读取的控制台应用程序不会返回

洛基

当我这样做时:

    var ch: char;
    read(ch);

仅当我按“输入”时,命令“读取”才会退出。输入字符后,如何使读回立即返回?

fpiette

您使用错误的功能。读取是标准(旧式Pascal)功能的一部分,可从标准输入或文件中读取内容。如您所见,它是基于线条的。

解决方案在Windows下解决问题的一种方法是使用控制台API,尤其像这样的ReadConsoleInput

program ReadConsoleInputDemo;
{$APPTYPE CONSOLE}
uses
    System.Sysutils, Winapi.Windows;
var
    Event      : TInputrecord;
    EventsRead : DWORD;
    Done       : Boolean;
begin
    WriteLn('Type something, ESC ends program');
    Done := False;
    repeat
        ReadConsoleInput(GetStdhandle(STD_INPUT_HANDLE),
                         Event, 1, EventsRead);
        if Event.Eventtype = key_Event then begin
            if Event.Event.KeyEvent.bKeyDown then begin
                Done := Event.Event.KeyEvent.wVirtualKeyCode = VK_ESCAPE;
                if (not Done) and (Event.Event.KeyEvent.AsciiChar <> #0) then
                     WriteLn('You typed: ', Event.Event.KeyEvent.AsciiChar);
            end;
        end;
    until Done;
end.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Visual Studio运行控制台应用程序时避免“按任意键继续”

来自分类Dev

当我在文本框中按Enter键时不要提交表单

来自分类Dev

为什么定期按Enter键会大大加快我的代码的速度?

来自分类Dev

我需要从键盘读取输入数据,而无需在RStudio中按Enter

来自分类Dev

就system_read中断,汇编而言,当我按Enter键时会发生什么?

来自分类Dev

控制台应用程序不会按名称加载程序集

来自分类Dev

按Enter键时scanf不返回

来自分类Dev

为什么execl要求我在运行进程后按Enter键?

来自分类Dev

当我按下Enter键时,mdDialog诺言没有解决

来自分类Dev

为什么Java要求我再次按Enter键?

来自分类Dev

c#控制台:如何在不按[Enter]的情况下读取Line

来自分类Dev

c#控制台应用程序按空格键而不在屏幕上显示

来自分类Dev

Fish外壳中的某个键绑定的功能需要我按Enter键,如何避免这种情况?

来自分类Dev

将ENTER键发送到VB.NET中的表单应用程序中的控制台

来自分类Dev

我如何只允许在读主机中输入Y / N,而不必在Powershell中按Enter键?

来自分类Dev

按Enter键执行

来自分类Dev

当我输入perl并在终端中按Enter键时会发生什么?

来自分类Dev

我想在每次按Enter键时提醒一些事情

来自分类Dev

按“ enter”键前进

来自分类Dev

当我按Enter键时,我想搜索表格

来自分类Dev

使用systemd的“ askfirst” getty(“按Enter键激活此控制台”)

来自分类Dev

如何模拟按Enter键

来自分类Dev

直到我按ENTER键,KnockoutJS 3.3.0绑定似乎延迟了

来自分类Dev

当我按Enter键时引用我所在的文本字段

来自分类Dev

当我在不同的文本输入上按Enter时,如何使表单提交不同的按钮?

来自分类Dev

c#控制台:如何在不按[Enter]的情况下读取Line

来自分类Dev

ç(cedilla)键,按Enter

来自分类Dev

当我按Enter键时,xcode自动缩进

来自分类Dev

当我按Enter键时如何禁用Microsoft Word级联(如何阻止文本移动)?

Related 相关文章

  1. 1

    从Visual Studio运行控制台应用程序时避免“按任意键继续”

  2. 2

    当我在文本框中按Enter键时不要提交表单

  3. 3

    为什么定期按Enter键会大大加快我的代码的速度?

  4. 4

    我需要从键盘读取输入数据,而无需在RStudio中按Enter

  5. 5

    就system_read中断,汇编而言,当我按Enter键时会发生什么?

  6. 6

    控制台应用程序不会按名称加载程序集

  7. 7

    按Enter键时scanf不返回

  8. 8

    为什么execl要求我在运行进程后按Enter键?

  9. 9

    当我按下Enter键时,mdDialog诺言没有解决

  10. 10

    为什么Java要求我再次按Enter键?

  11. 11

    c#控制台:如何在不按[Enter]的情况下读取Line

  12. 12

    c#控制台应用程序按空格键而不在屏幕上显示

  13. 13

    Fish外壳中的某个键绑定的功能需要我按Enter键,如何避免这种情况?

  14. 14

    将ENTER键发送到VB.NET中的表单应用程序中的控制台

  15. 15

    我如何只允许在读主机中输入Y / N,而不必在Powershell中按Enter键?

  16. 16

    按Enter键执行

  17. 17

    当我输入perl并在终端中按Enter键时会发生什么?

  18. 18

    我想在每次按Enter键时提醒一些事情

  19. 19

    按“ enter”键前进

  20. 20

    当我按Enter键时,我想搜索表格

  21. 21

    使用systemd的“ askfirst” getty(“按Enter键激活此控制台”)

  22. 22

    如何模拟按Enter键

  23. 23

    直到我按ENTER键,KnockoutJS 3.3.0绑定似乎延迟了

  24. 24

    当我按Enter键时引用我所在的文本字段

  25. 25

    当我在不同的文本输入上按Enter时,如何使表单提交不同的按钮?

  26. 26

    c#控制台:如何在不按[Enter]的情况下读取Line

  27. 27

    ç(cedilla)键,按Enter

  28. 28

    当我按Enter键时,xcode自动缩进

  29. 29

    当我按Enter键时如何禁用Microsoft Word级联(如何阻止文本移动)?

热门标签

归档