我很惊讶Eclipse无法以一种方式运行最简单的程序,但同时以多种方式运行。该计划
#include <stdio.h>
int main ()
{
int n;
while (scanf("%d", &n) > 0)
{
printf("%d\n", n);
}
return 0;
}
失败1:在模拟器中运行时,输出会无缘无故地显示两次。输出应显示一次。
故障2:使用DE2板运行时,根本不显示输出。
为什么我的环境不能像它那样表现?
答案 0 :(得分:1)
由于你没有提供很多细节,我只是猜测:
可能会启用某种回音
<stdio.h>
上的。保证<stdio.h>
仅在托管环境中可用(即在操作系统的控制下),而不是在独立环境(裸机)中。
引自C99标准草案N1256:
4。一致性
[...]
6
这两种符合规范的实施方式是托管和独立的。一致的 托管实施应接受任何严格符合的计划。一致的 独立实施应接受任何严格符合要求的程序 使用复杂类型并使用库子句中指定的功能 (第7条)仅限于标准标题
<float.h>
的内容,<iso646.h>
,<limits.h>
,<stdarg.h>
,<stdbool.h>
,<stddef.h>
和<stdint.h>
。符合要求的实施可能有扩展(包括附加 库函数),只要它们不改变任何严格符合的行为 程序
您应该查看您的主板的编译器文档,看看它支持哪些标题。