【发布时间】:2012-07-21 05:15:40
【问题描述】:
我是 ANSI C 的初学者,我有一个问题,这可能是个愚蠢的问题,我很抱歉。
#include<stdio.h>
main()
{
int age;
printf("Hello World!\n");
printf("Please enter your age: ");
scanf("%d", &age);
printf("You entered %d\n", age);
fflush(stdin);
getchar();
}
这是我学习scanf函数的第二个程序。 我的问题是: 我知道定义了 printf、scanf、fflush、stdin 和 getchar在 stdio.h 但只有当我使用 fflush(stdin) 我必须把 #includestdio.h> >,但是当使用任何其他方法时,我可以删除该行#include。
【问题讨论】:
-
您是否已经包含任何其他头文件?
-
不,这是代码。我不明白两者之间有什么区别
-
值得注意的是,
fflush(stdin)虽然适用于某些实现,但它仍然是未定义的行为。根据标准,fflush仅适用于输出/更新流。 -
请注意,在某些系统上(尤其是带有 Microsoft 库的 Windows),
fflush(stdin)是已定义的行为。在许多系统上,根据 C 和 POSIX 标准,这是未定义的行为。另请参阅Usingfflush(stdin)。