控制台输入C

问题描述 投票:1回答:1

我是C语言的初学者,想知道我的代码在这里有什么问题:

#include "stdio.h"

int main(void)
{ 
    int a;

    printf("Please input an integer value: ");
    scanf("%d", &a);
    printf("You entered: %d\n", a);

    return 0;
}

[我的问题是我必须先输入一个值,然后才能输出任何控制台信息,例如,如果我输入7,则会得到此控制台输出:请输入一个整数值:您输入的是:7

我在另一台计算机上尝试了完全相同的代码,并且效果很好,我想这是缓冲区问题?但我不知道如何解决它。

c input console scanf
1个回答
1
投票

正如已经提到的其他内容,为了确保在代码的那个点将打印该行,您可以像这样刷新标准输出,

#include "stdio.h"

int main(void)
{ 
    int a;

    printf("Please input an integer value: ");
    fflush(stdout);
    scanf("%d", &a); 
    printf("You entered: %d\n", a);

    return 0;
}

您可以阅读以获取更多详细信息,Why does printf not flush after the call unless a newline is in the format string?

感谢@Osiris评论进行了更新

© www.soinside.com 2019 - 2024. All rights reserved.