- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图获取一段包含换行符的文本,而无需用户每次获取时都按 Enter 键,直到用户按 CTRL+C,此时下面显示的循环将退出。但使用这种方法的问题在于,一旦终端设置为原始模式,当我按 Enter 时它还会显示那些 ^M
并在我按 Enter 时显示 ^?
退格键。如何解决这个问题?我也尝试过给 system("/bin/stty raw -echo isig");
但是这个方法也不起作用(我输入时没有字符显示)
int main(void)
{
char str[1000] ,c , i=0 ;
system("/bin/stty raw") ;
while(1)
{
c = getchar();
str[i++] = c ;
if(c==3)break;
if(c==13)puts("\r");
}
system("/bin/stty cooked") ;
for(i=0 ;str[i] ; i++) printf("%c",str[i]) ;
}
此外,末尾生成的字符串 (str) 也没有正确的字符。事实上,当我打印它时,它只打印最后一行。
最佳答案
你可以尝试printf("\b\b");
来删除一个字符,但首先你必须检查退格
是否被按下,你需要找出您特定机器中的 backspace
代码:
if (ch == 0x7F) // the code for backspace on my machine
printf("\b \b"); // simulate erasing a character using two '\b' and a space ' '
或者您可以使用VT100 escape codes :
if (ch == 0x7F) // the code for backspace on my machine
printf("\b\33[K"); // clear line from cursor right
关于terminal - 当 stty 在 C 中设置为原始模式时删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200681/
如果我在手动执行每一行时取出循环和变量,不明白为什么我的代码可以工作。一开始我以为我的变量是错误的,但后来我用这些变量测试了我的代码,但没有循环,它起作用了。 如果我回到循环中(我唯一要更改的东西),
我有一个打开串行端口的 netcore 应用程序,一旦检测到奇偶校验错误,就会在控制台上写入“奇偶校验错误”。它在 Windows 10 中运行良好,但无法在 Linux 下运行。 我的假设是操作系统
我使用下面的代码来读取和输出每个击键,而不必每次都按回车键。 system("\bin\stty raw"); 在我读完之后,程序立即执行另一个系统调用来重置终端行为。 system("\bin\st
目前,我可以通过执行 stty -ixon 禁用终端输出挂起/恢复“功能”(CTRL+S 和 CTRL+Q 废话)。 不幸的是,这不是永久性的。我每次启动xterm时都需要设置这个选项。 是否有可以编
我正在尝试使用我在网上找到的说明为 OS X 10.8.5 安装 Homebrew。我这样做是为了更新我的 Ruby 版本,因为我收到了这个错误: Use RbConfig instead of ob
我正在尝试使用 bash 从 ttyS0 读取并需要设置以下内容,但我正在努力弄清楚 databits = 7 stopbits = 2 parity = 0 flow control = 0 这是我
我在 hpux 上看到 stty,不是打字机 消息(尽管进行了交互式终端检查?),我猜测这些是由于我的 .kshrc 文件中的 stty 行造成的: case $- in *i* ) stty
我需要使用波特率为 115200 的 USB 串行电缆。 我尝试使用 MACbook 终端应用程序中的 stty 命令设置速率,如下所示; $stty -f /dev/tty.usbserial-A1
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我遇到了一个奇怪的问题。每次我通过 subprocess.Popen(cmd).wait() 调用特定命令 cmd 时,stty 都会变坏(不会在 shell 上回显我的进一步命令,换行符不起作用等)
我正在尝试将控制台置于 Java 中的“原始”模式。我知道这只适用于 UNIX。 我正在使用命令 stty raw 如果我直接在终端中输入命令,它就会执行它应该执行的操作。在 Java 中,我尝试这样
我正在使用 github.com/kr/pty 包为我产生的外部进程创建伪 TTY。然而,它们的终端大小似乎小于终端仿真器窗口大小(即 ncurses 和其他终端 UI 只会在 xterm/Konso
有人知道 Windows 上 stty 的等效工具吗?我想在 Windows 平台上对串行端口设置进行逆向工程。 我必须将一个 Windows 应用程序移植到 Linux 平台,但我没有关于我必须用于
stty 有很多选项。我想要的是基于 stty raw -echo:我想知道我是否可以添加一个选项,使终端驱动程序在看到例如ctrl+z,而不是让我的程序处理这个按键。 最佳答案 stty 的 raw
尝试从 Windows 命令行在 Symfony2 中生成实体时出现以下错误: 'stty' is not recognized as an internal or external command,
我试图获取一段包含换行符的文本,而无需用户每次获取时都按 Enter 键,直到用户按 CTRL+C,此时下面显示的循环将退出。但使用这种方法的问题在于,一旦终端设置为原始模式,当我按 Enter 时它
我正在尝试确保流量控制、xon-xoff、Control-S Control-Q 功能在我所有的终端/shells/tmux 中都关闭了(这样我就可以可靠地使用 Control-S 做其他事情)它应该
我只是为了好玩而尝试编辑我的终端设置。当我按“-a”时,“LEFT”应该出现在屏幕上。当我按“-w”时,“UP”应该出现在屏幕上。但是,当我执行我的程序时,出现了分段 11 错误,我想知道为什么。我的
在我的程序中,显示了一个 5x20 的点域。一名带有“#”符号的球员也在场上。您可以使用 w、a、s 和 d 移动玩家。如果我使用缓冲输入,一切都很好。但是用户不想每次都按回车键。所以我使用了命令 s
我使用的是带有 USB 串行连接的 Raspberry Pi - 因此 Raspberry Pi 具有连接到某些硬件照明板的 USB 引线。 当我通过此 USB 连接发送许多串行命令时,似乎会出现延迟
我是一名优秀的程序员,十分优秀!