在C中扫描语句后执行print语句

use*_*101 1 c

    #include <stdio.h>
    #include <stdlib.h>

    int main(void)
    {

        int age;

        printf("What is your age?: ");
        scanf("%d ", &age);
        printf("your age is %d", age);


        return 0;

    }
Run Code Online (Sandbox Code Playgroud)

我只是学习一些基本的c编程并且有一个小问题.当我编译并运行此代码时,我的控制台屏幕将提示我我的年龄,我键入一些数字,然后按Enter键,没有任何反应.然后,只有当我点击键盘上的任何其他字母时,我的年龄才能通过最后的陈述打印出来 我想知道这是怎么发生的,我该如何防止这种情况发生?我希望能够输入我的年龄,并在输入我的年龄后按下输入后立即显示.

我是C的新手,一小时前刚开始搞乱它,所以如果这是一个糟糕的问题,请原谅.

Igo*_*gor 6

更改scanf("%d ", &age);scanf("%d", &age);

即删除空间,你不需要它.

scanf格式的空白字符使其显式读取并忽略尽可能多的空白字符.因此,scanf("%d ", ...在读取一个数字之后,它将继续读取字符,丢弃所有空格,直到它在输入上看到非空白字符.该非空白字符将留作输入函数读取的下一个字符.