2

我打算将 Eclipse 与 MinGW 一起使用。但在所有设置完成后,我得到了这个奇怪的错误。那么它实际上不是一个错误。我认为它是一个错误。在编写程序并构建它之后,当我

运行它,控制台仍然没有响应。它有效,但像这样-----

假设我正在运行这段代码——

#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)在每个printf(). 但是在配置和设置方面应该有一些解决方案,添加一个fflush(stdout)对我来说看起来不太舒服,想象一下它在一个有 10 个或更多选项的菜单驱动程序中。那么我还有什么可以做的吗?

我已经尝试过了。

" Project -> Properties -> Run/Debug Settings ->选择 .exe 并单击edit ->转到选项Environment并选择new并给出Name = PATHValue = C:\MinGW\bin"

但遗憾的是它没有奏效。

4

2 回答 2

1

stdout 流是缓冲的,因此只有在到达换行符后才会显示缓冲区中的内容。

\n与每个printf语句一起使用,

或寻求帮助fflush

或尝试使用setbuf(stdout, NULL);. setbuf将禁用缓冲,

或者setvbuf (stdout, NULL, _IONBF, BUFSIZ);也可以,但您需要在任何操作之前调用它stdout

stderr用于打印而不是stdout.

于 2013-09-25T18:34:33.037 回答
1

您还可以将 Eclipse 配置为使用外部本地 DOS 控制台进行调试,这将解决您的所有问题。该过程在此处进行了详细描述,但很简短:

  1. 从 Eclipse 菜单 File > New > C++ Project 创建您的 Hello World C++ 命令行项目
  2. 在您的项目文件夹中,创建一个“.gdbinit”文本文件。它将包含您的 gdb 调试器配置
  3. 编辑“.gdbinit”,并添加以下行(不带引号):“set new-console on”
  4. 在 Eclipse 中,转到菜单 Run > “Debug Configurations”,然后在左侧窗格中选择您的应用程序名称
  5. 在“调试器”选项卡中,确保“GDB 命令文件”现在指向您的 « .gdbinit » 文件。否则,输入“.gdbinit”配置文件的路径
  6. 单击“应用”和“调试”。你完成了 !应启动本机 DOS 命令行。
于 2013-11-06T23:05:58.243 回答