簡體   English   中英

刷新輸入緩沖器C.

[英]Flush Input Buffer C

注意:fflush(stdin)不起作用。

問題:
我使用scanf(inb4折舊)在while循環中輸入數字。 當我輸入一個時,緩沖區用空行填充其余部分。

碼:

double input, total;

for(i=0; i<COUNT; i++){
     printf("\nNumber %d: ", i+1);
     scanf("%d", &input);
     total += input;
}
printf("\nAverage: %f\n", total/COUNT);

輸出:

Please enter 5 decimal numbers: 
Number 1: 1.0

Number 2: 
Number 3: 
Number 4: 
Number 5: 
Average: 0.000000
 if(scanf("%d", &input) != 1)
 {
      /* If scanf failed to read a number clear the input buffer */
      while((c = getchar()) != '\n' && c != EOF);
 }

在獲取輸入之前使用flushall()您還使用%d存儲為double,使用%lf,或將輸入聲明為int

暫無
暫無

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

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