c - Minix 3 TTY传入字符转int

标签 c minix

请引用下面的代码片段,我将引用其中的行号:

https://gist.github.com/wilbertcr/474c6a13e377dc8ce51a

正如您在第 172-200 行所看到的,我创建了原始 back_over 函数的修改版本,它仅移动指针,而不删除正在移动的字符。

在函数 in_process 之外,作为全局变量,我创建了 int verase,请参见第 1 行,我在第 82 行使用它来指示 CTRL+H 已被按下(ch == tp->tty_termios.c_cc[VERASED ])。

我的想法是使用它作为标志,这样我就可以捕获下一个字符,这应该是我需要 back_over 的空格数,并通过调用 back_over 下一个字符指示的次数来实现这一点。

我遇到的问题是我不知道如何将下一个字符转换为相应的 int 以便我可以在 for 循环中使用它。第 27-38 行显示了一次失败的尝试,但是,无论我按下的键有多小(我已经尝试过 1、2 和 3),它总是将我带到该行的开头(幸运的是 back_over 不会超越换行符——参见第 185 行)。

似乎 for 循环的执行次数超出了应有的范围,我怀疑这种情况正在发生,因为“数字”实际上并不是 1 或 2 或 3,而是其他东西,for 循环解释的东西比我在键盘上按的数字。我希望得到一些有关如何将其转换为 int 的帮助。

最佳答案

事实证明,这只是一个做的问题:

ch=ch-'0'

关于c - Minix 3 TTY传入字符转int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276369/

相关文章:

c - scanf 返回值的使用

c - 如何让 gcc 警告未定义的结构?

c - 为什么 glClear 不清除我的屏幕?

c++ - 单程搜索和替换

linux - 大概是 GCC 链接器错误

c - 在TM-1638 8位7段显示器上显示十进制值

c - 当前时间

使用c语言为shell程序创建历史命令

c - 错误的包含语法 minix 中的错误