3

この c コードは K&R からのものです。-1 を入力しても、継続的に実行されます。Fedora 17 で Eclipse を使用しています。このコードの問題点は何ですか? どのように終了しますか?CTRL+D でさえ終了できません!

#include<stdio.h>
int main(void)
{
    int c;

    c = getchar();
    while(c != EOF)
    {
        putchar(c);
        c = getchar();
    }

    return 0;
}
4

4 に答える 4

4

-1 を入力しても、継続的に実行されています

Unix では、ファイルの終わりを知らせる代わりに Ctrl-D を入力する必要があります。


Mooing Duck が指摘しているように、これは Eclipse のバグのようです。

于 2013-02-16T08:40:26.907 に答える
3

Eclipse IDE の問題であることが判明しました。日食以外では、コードは正常に実行されています。UNIX の CTRL+D は EOF (内部的に -1) です。日食には回避策があります。EOF を必要とするアプリケーションごとに、RUN --> RUN CONFIGURATION... --> メイン タブで下にスクロールし、[プロセスの入力と出力を端末に接続] のチェックを外します。コードを実行します。CTRL+D が機能するはずです。アプリケーションごとに、このトリックを個別に適用する必要があります。

于 2013-02-17T00:25:19.073 に答える
3

EOF 文字を送信します。

Linux では、端末で CTRL-D を使用します。

于 2013-02-16T08:40:49.070 に答える
-1

Mac では Cmd + D もあります。WindowsではWindows + Dであると確信しています

于 2013-03-22T23:18:41.270 に答える