2

我有这个代码。

#include <stdio.h>
int main(void)
{
     int dogs;
     printf("How many dogs do you have?\n");
     scanf("%d", &dogs);
     printf("So you have %d dog(s)!\n", dogs);
     return 0;
}

据我所知,在执行时,程序会说“你有多少只狗”,然后我输入一个数字。相反,我得到一个空白页,我必须先输入一个数字。然后我得到

你有多少条狗?所以你有3条狗!(如果我输入 3)

我正在使用 Eclipse + MinGW,这是我第一次使用 C,所以我不确定我必须/必须设置什么。

4

2 回答 2

1

我设法解决了这个问题。问题是eclipse首先处理所有的扫描语句,然后处理所有的打印语句。如果您的程序有多个扫描语句,这将很难解决。

修复有点简单。从以下链接下载二进制修复程序。

然后,您需要将 starter.exe 粘贴到安装了 Eclipse 的路径中。

就我而言,这是 eclipse\plugins\org.eclipse.cdt.core.win32.x86_64_5.2.0.201309180223\os\win32\x86_64

你的可能有点。覆盖现有的 starter.exe,它应该可以工作。

于 2013-10-11T07:04:42.127 回答
0

printf()缓冲输出。通常(在 UNIX 中)stdlib 足够聪明,可以stdout在读取之前刷新,stdin但在 MingW 中可能并非如此。考虑使用fflush()或输出到 stderr。

于 2013-10-09T22:47:42.133 回答