[英]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.