2010-10-13 86 views
0

這個scanf應該總是返回true,直到我輸入沒有數字輸入,但是這個scanf從不執行while循環。爲什麼?爲什麼這個scanf返回false?

樣品輸入:

10.0 5.0 
Press [Enter] to close the terminal ... 

代碼:

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char** argv) 
{ 
    float a, b; 
    while (scanf("%f %f", &a, &b) == 1) 
    { 
     printf("%f\n", (a - b)/(a * b)); 
    } 
    return (EXIT_SUCCESS); 
} 

回答

7

scanf返回的項目數讀,在這種情況下是2。

+0

THX,理解 – gameboy 2010-10-13 12:41:05

0

scanf返回成功掃描的項目數。在你的情況下,它會返回2來表示成功。

0

這是因爲scanf返回2這是成功讀取的項目數。

要堅持讀書,直到一個EOF遇到你可以這樣做:

while (scanf("%f %f", &a, &b) != EOF)