c - 如何在C中读取标准输入然后键盘输入?
问题描述
我正在尝试读取重定向/通过管道传输到我的程序的内容(例如 program < test.txt),然后显示命令提示符并读取键盘输入。
管道输入正确打印,然后在标准输入中引发 EOF。在那之后,我似乎无法获得键盘输入。例如,下面的代码无限循环:它打印的字符是-1(EOF)。
你会建议什么让键盘输入正常工作?
#include <stdio.h>
#include <unistd.h>
int main()
{
int ch;
while (EOF != (ch = getchar())) {
printf("%c", ch);
}
sleep(3);
while (1) {
while ('\n' != (ch = getchar())) {
printf("%c", ch);
}
}
return 0;
}
解决方案
推荐阅读
- deep-learning - 为什么小权重有助于深度神经网络(正则化)
- javascript - 条卡元素输入不显示
- python - 使用 Python ctypes 调用 rs232.c 时如何解决分段错误问题?
- c - 有人可以帮我解决那个C问题吗?当我尝试运行它不返回任何东西
- python-3.x - 如何使用 GTK PrintOperation 打印图像
- python - matplotlib 多个 xticklabel 用于两个 colluns 的条形图
- node.js - PM2 & Puppeteer 手表重启
- bash - bash 中字符串切片的错误替换
- excel - Excel PowerQuery - 从单元格值动态更改源
- vbscript - 经典 ASP:由于会话变量显示/隐藏导航链接问题