在两个方面都失败了一个非常简单的程序

时间:2013-09-28 23:02:23

标签: c eclipse printf scanf nios

我很惊讶Eclipse无法以一种方式运行最简单的程序,但同时以多种方式运行。该计划

#include <stdio.h>
int main ()
{
  int  n; 
  while (scanf("%d", &n) > 0)
  {
    printf("%d\n", n);
  }
  return 0;
}

失败1:在模拟器中运行时,输出会无缘无故地显示两次。输出应显示一次。

故障2:使用DE2板运行时,根本不显示输出。

为什么我的环境不能像它那样表现?

1 个答案:

答案 0 :(得分:1)

由于你没有提供很多细节,我只是猜测:

  1. 可能会启用某种回音

  2. 不需要支持嵌入式系统<stdio.h>上的
  3. 。保证<stdio.h>仅在托管环境中可用(即在操作系统的控制下),而不是在独立环境(裸机)中。

  4. 引自C99标准草案N1256:

      

    4。一致性

         

    [...]

         

    6

         

    这两种符合规范的实施方式是托管和独立的。一致的   托管实施应接受任何严格符合的计划。一致的   独立实施应接受任何严格符合要求的程序   使用复杂类型并使用库子句中指定的功能   (第7条)仅限于标准标题<float.h>的内容,   <iso646.h><limits.h><stdarg.h><stdbool.h><stddef.h>和   <stdint.h>。符合要求的实施可能有扩展(包括附加   库函数),只要它们不改变任何严格符合的行为   程序

    您应该查看您的主板的编译器文档,看看它支持哪些标题。