【问题标题】:Receiving Control Codes in C Programming在 C 编程中接收控制代码
【发布时间】:2014-04-18 14:02:10
【问题描述】:

我正在 Kindle Paperwhite 2 上编写终端程序。我使用 tcc 编译。我使用Linux。我想实现gotoxy(x,y)和鼠标之类的功能。 要移动光标,我需要发送控制代码。我发现我像这样使用 printf:

printf("\033[%d;%dH",y,x);

问题是如何接收从终端发回给我的控制代码。 我正在阅读this document

我写了以下代码:

printf("\033[?9h");//this turns on the mouse in the terminal
while (1)
{
    printf("\n");
    sleep(1);
}

使用 scanf 或 getch() 不会捕获任何内容。 现在每次单击时,我都会在屏幕上看到一个代码(例如“^[[M 9.”)。
就好像除非换行符是打印机,否则代码不会被打印。 我需要能够将最后两个字符捕获为小数,我认为这是屏幕的 xy。
有人可以帮忙吗?
谢谢

【问题讨论】:

  • 也许是 scanf()。它是 printf() 的输入版本

标签: c terminal curses kindle


【解决方案1】:

首先,我强烈建议不要处理转义序列。使用ncurses

现在keep in mind那个

因为控制台驱动没有办法知道 鼠标的设备或类型,这些报告在 仅当虚拟终端驱动程序接收到一个控制台输入流 鼠标更新ioctl。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多