2012-01-31 98 views
2

我在NetBeans中的代码如下:Netbeans - C - 为什么输入在打印命令之前运行?

int main(int argc, char** argv) { 

    int a = 2; 
    int b; 
    printf("b = "); 
    scanf("%d", &b); 
    printf("\n%d",a+b); 
    return (EXIT_SUCCESS); 
} 

问题是,当我运行它,它等待的第一件事就是用户输入,它不显示“B =”。只要我输入一些东西,它就会显示一切。

这是一个问题,因为用户必须看到文本才能知道他需要输入什么(单词或数字)。 我该如何解决这个问题?

注意:我正在使用MinGW(和MSYS for make)。

回答

3

printf被缓冲在stdout ...因此,只有在缓冲区中存在行结束符,缓冲区被填充到其最大容量或缓冲区被明确刷新之后,才会看到输出使用fflush

相关问题