printf之前的scanf - C.

时间:2017-04-14 01:00:54

标签: c printf scanf

所以,我有一个printf,要求用户初中,然后我有一个scanf,然后我输出用户中间的首字母。我的问题是我的printf

后显示scanf

C代码

#include <stdio.h>
#include <string.h>

int main(void) {
    char middleInitial;

    printf("What is your middle initial? ");

    scanf(" %c", &middleInitial);

    printf("Middle initial %c", middleInitial);

}

你可以看到,有两个printf。在我的第一个scanf显示问题之前,我的printf正在运行。

示例(这是我在终端中获得的内容)

$ ./a.exe
c
What is your middle initial? Middle initial c

我想要什么

$ ./a.exe
What is your middle initial? c
Middle initial c

顺便说一下,c是用户输入的内容

2 个答案:

答案 0 :(得分:2)

在致电fflush(stdout)之前致电scanf()

答案 1 :(得分:0)

在第一个 struct UserModel { var name:String var position:String var image:String } 之前输入 fflush(stdout); 应该在第一个 scanf() 之后

在我的 Windows 电脑中,我遇到了同样的问题。如果您使用不同的操作系统,您可能不需要它。