2

MinGWでEclipseを使用するつもりでした。しかし、すべてのセットアップが完了した後、この奇妙なエラーが発生しました。実際にはエラーではありません。バグだと思います。プログラムを書いてビルドした後、

実行しても、コンソールは無反応のままです。それは動作しますが、このように-----

このコードを実行しているとします -

#include<stdio.h>
int main() {
    int a, b, c;
    printf("Enter two numbers\n");
    scanf("%d %d", &a, &b);
    c = a+b;
    printf("%d", c);
    return 0;
}

プログラムを実行すると、コンソールは次のように表示されます-- ここに画像の説明を入力

このプログラムを最初に実行するとprintf()、すべてのscanf()ステートメントが完了した後にステートメントが実行されているように見えます。fflush(stdout)after everyを追加するだけで、この問題はすぐに解決しますprintf()。しかし、構成とセットアップに関していくつかの解決策があるはずfflush(stdout)です.10以上のオプションを持つメニュー駆動型プログラムでそれを想像してみてください。それで、これについて他にできることはありますか?

私はすでにこれを試しました。

" Project -> Properties -> Run/Debug Settings ->.exe を選択し、[edit ->オプションに移動] をクリックしてEnvironment、選択newして指定Name = PATHし、Value = C:\MinGW\bin"

しかし、残念ながらうまくいきませんでした。

4

2 に答える 2

1

stdout ストリームはバッファリングされるため、改行に達した後にのみバッファ内の内容が表示されます。

\nprintfステートメントで使用するか、

またはfflush

または を使用してみてくださいsetbuf(stdout, NULL);setbufバッファリングを無効にし、

またはsetvbuf (stdout, NULL, _IONBF, BUFSIZ);も機能しますが、 に対する操作の前に呼び出す必要がありますstdout

stderrではなく印刷に使用しますstdout

于 2013-09-25T18:34:33.037 に答える
1

外部のネイティブ DOS コンソールを使用してデバッグするように Eclipse を構成することもできます。これにより、すべての問題が解決されます。手順はこちらで詳しく説明されていますが、簡単に説明します。

  1. Eclipse メニューの [ファイル] > [新規] > [C++ プロジェクト] から、Hello World C++ コマンド ライン プロジェクトを作成します。
  2. プロジェクト フォルダーに、".gdbinit" テキスト ファイルを作成します。gdb デバッガー構成が含まれます
  3. ".gdbinit" を編集し、次の行を追加します (引用符なし): "set new-console on"
  4. Eclipse で、メニューの [実行] > [デバッグ構成] に移動し、左側のペインでアプリケーション名を選択します。
  5. 「デバッガー」タブで、「GDB コマンド ファイル」が「.gdbinit」ファイルを指していることを確認します。それ以外の場合は、「.gdbinit」構成ファイルへのパスを入力します
  6. 「適用」と「デバッグ」をクリックします。これで完了です。ネイティブ DOS コマンド ラインを起動する必要があります。
于 2013-11-06T23:05:58.243 に答える