簡體   English   中英

printf - C 之前的 scanf

[英]scanf before printf - C

所以,我有一個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 在我的第一個printf顯示問題之前,我的scanf正在運行。

示例(這是我在終端中得到的)

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

我想要的是

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

順便說一句,c是用戶輸入的

在調用scanf()之前調用fflush(stdout) scanf()

輸入fflush(stdout); 就在你的第一個scanf()應該在第一個printf()

在我的 Windows 電腦中,我面臨同樣的問題。 如果您使用不同的操作系統,您可能不需要它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM