c - 使用键盘作为标准输入

标签 c keyboard stdin microcontroller avr

我不知道如何从键盘获取用户输入并将这些输入显示到终端仿真器(实际)。

我通常会执行以下操作来设置标准输入。但是,我确实意识到我不能将 KEYBOARD 这个词作为流。

   FILE receive_str = FDEV_SETUP_STREAM(NULL, KEYBOARD , _FDEV_SETUP_READ);
   stdin = &receive_str;

该程序是在 Windows 7 下使用 AVR Studio 4.18 编译的,目标是 ATmega 32 微 Controller 。

最佳答案

参见 http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html有关设置 stdio 的 FDEV_SETUP_STREAM 方法的信息。特别是,您在上面的示例中作为“KEYBOARD”放置的内容应该是提供键盘输入的功能。因此,您编写代码的方式意味着它正在寻找这样的函数:

int KEYBOARD(FILE *stream)
{
    return 'A';   
}

例如,这将是一个始终返回字母 A 的流。当然,您可以使用从连接到微 Controller 的任何键盘硬件读取所需的任何代码来填充该函数。

上面链接的 avr-libc 手册描述了您可以从此函数返回的其他值,例如 _FDEV_ERR(如果发生错误)或 _FDEV_EOF(如果它是文件结尾,即没有更多输入阅读)。

关于c - 使用键盘作为标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859631/

相关文章:

C程序: print in text file 2 numbers in row

linux - 用于按键的键盘脚本

c# - 可以在不更改键盘语言的情况下为文本框设置拼写检查语言吗?

python - 通过 GUI 重定向标准输入

python - 即使 stdin 不是终端,也从 Python 子进程向 stdin 发送命令?

bash - 在 bash 中重定向 STDIN?

c - 使指针指向任何内容的最佳方法

计算空格、制表符和新行

javascript - 使用 Easy Slider 1.7 进行键盘方向键导航

c - 包含 C 代码和汇编代码的 C 项目