簡體   English   中英

C中printf命令的順序

[英]order of printf command in c

我正在嘗試學習c,並且只是從觀看一些在線視頻開始,並試圖做這個例子,但是我的結果不是我期望的。 這段代碼只是輸入數字並打印出您輸入的數字,但是我不知道它出了什么問題。

 #include <stdio.h>

int main(void) {
    int aNumber;
    printf("Please enter a number: ");
    scanf("%d", &aNumber);
    printf("you entered %d", aNumber);
    getchar();
    return 0;
}

但是當我運行此代碼時,它應該要求用戶輸入一個數字,而不是什么也不做,直到我輸入一個數字並且輸出是這樣:

5
請輸入數字:您輸入了5

在其中鍵入5的位置,按Enter鍵,然后代碼將打印出該語句。 誰能告訴我為什么訂購錯了。 它應該是

請輸入數字:5
您輸入了5

首先彈出“請輸入數字:”,然后輸入5,依此類推。

您很可能需要刷新stdout才能顯示輸出。 為此,請調用fflush(stdout) 如果不這樣做,則可能會緩沖某些輸出,從而導致您看到的內容。

#include <stdio.h>

int main(void) {
    int aNumber;
    printf("Please enter a number: ");
    fflush(stdout);
    scanf("%d", &aNumber);
    printf("you entered %d", aNumber);
    getchar();
    return 0;
}

如此簡單的程序實在是一個非常不尋常的結果。 其他人指出了“ fflush”,我只想提及以新行結尾的printf也會導致緩沖區被沖洗掉。 因此,如果您不希望輸入內容出現在新行中,則可以使用新方法來處理它。

暫無
暫無

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

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