提问人:Ewan 提问时间:11/29/2018 最后编辑:Ewan 更新时间:12/1/2018 访问量:170
Windows 7 上的 Cygwin Control+D 不发出 EOF 信号 [重复]
Cygwin Control+D on Windows 7 doesn't give EOF signal [duplicate]
问:
我最近安装了 Cygwin64,我正在尝试运行一个 C 程序,该程序使用 getchar 从键盘获取输入
#include <stdio.h>
// copies input to output
int main()
{
int c;
while ((c = getchar()) != EOF)
putchar(c);
}
我使用 stty -a 来检查键盘信号做什么,EOF 正确映射到 ctrl+D,但它什么也没做
我的解决方案是切换到使用 VS Code 中的 Cygwin 终端,它改用 Windows 键盘信号
答:
0赞
contrapants
11/29/2018
#1
它仍然是 Ctrl+D。您的代码中有拼写错误。您没有将 的返回值分配给 。删除等号。getchar
c
while ((c = getchar()) != EOF)
评论
0赞
Ewan
11/29/2018
谢谢!没有注意到这一点。
0赞
Ewan
11/29/2018
不过,Ctrl+D 仍然不执行任何操作。我的原始代码都没有这种错别字:)
0赞
contrapants
11/29/2018
Ctrl+D 适用于您提供的示例代码。我也在 Windows 7 上使用 Cygwin。
0赞
Ewan
11/29/2018
我能问一下你是否在使用 MinGW 吗?
0赞
contrapants
11/29/2018
我正在使用 gcc 7.3.0 (x86_64-pc-cygwin)。这不是MinGW。
评论