【问题标题】:Cygwin Control+D on Windows 7 doesn't give EOF signal [duplicate]Windows 7上的Cygwin Control+D不给出EOF信号[重复]
【发布时间】:2019-04-30 15:00:25
【问题描述】:

我最近安装了 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 但是它什么也没做

I have read that there may be a conflict with MinGW which I am also using

我的解决方案是切换到在 VS Code 中使用 Cygwin 终端,而改用 Windows 键盘信号

【问题讨论】:

    标签: c windows cygwin eof getchar


    【解决方案1】:

    仍然是 Ctrl+D。您的代码中有错字。您没有将getchar 的返回值分配给c。删除等号。

    while ((c = getchar()) != EOF)
    

    【讨论】:

    • 谢谢!没注意到。
    • Ctrl+D 仍然什么都不做。我的原始代码都没有那个错字:)
    • Ctrl+D 与您提供的示例代码一起为我工作。我也在 Windows 7 上使用 Cygwin。
    • 请问你用的是MinGW吗?
    • 我使用的是 gcc 7.3.0 (x86_64-pc-cygwin)。这不是 MinGW。
    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    相关资源
    最近更新 更多