0

我有以下代码:

#include<stdio.h>
int main(){
    int a = 1, b = 8;
    while(a != b)
    {
        printf("asd");
        fflush(stdout);
    }
    return 0;
}

显然,程序永远不会停止。但是为什么根本不打印“asd”呢?

编辑:这是完整的程序。没有其他线路。我第一次使用 Eclipse 和 MinGW,它没有打印任何东西。然后我尝试在 linux 中使用 gcc,它按预期工作,即使没有 fflush!因此,这种行为可能是由于某些编译器优化代码并修改了无限循环造成的。

4

1 回答 1

11

fflush(stdin)是没有意义的,实际上根据标准会导致未定义的行为-您可能是说fflush(stdout). 如果您进行更改,您将看到输出。

于 2013-06-28T20:39:40.787 回答