2017-07-20 146 views
-9
#include <stdio.h> 

int main() { 
    int i; 
    printf("%d",scanf("%d",&i));// > What does this explain 

    return 0; 
} 

它每次都返回1。怎麼樣?爲什麼總是返回一個?

+0

什麼是scanf返回?這就是打印。爲了好玩,在格式字符串中添加其他內容,它會奇蹟般地打印2. –

+0

c中scanf函數返回的值https://stackoverflow.com/questions/10469643/value-returned-by-scanf-function-in- c – inferno

+2

請閱讀***返回值部分:https://linux.die.net/man/3/scanf –

回答

0

您正在打印返回值scanf() - 它返回格式化的項目數。

嘗試:

#include <stdio.h> 

int main() { 
    int i; 
    scanf("%d", &i); 
    printf("%d", i); 
    return 0; 
} 

正如一位網民所提到的,但是,你應該看看了他們對這些功能的文檔和實驗,而不是立即不禁要問上的東西很容易回答的問題。看看這個網站:http://www.cplusplus.com/reference/cstdio/scanf/

1

scanf()返回成功匹配和分配的輸入項的數量,可以少於規定的數量,或者在發生早期匹配失敗的情況下甚至爲零。

如果在第一次成功轉換或發生匹配失敗之前達到輸入的結尾,則會返回值EOF。如果發生讀取錯誤,EOF也會返回,在這種情況下,流的錯誤指示符(請參閱ferror(3))已設置,並且設置errno表示錯誤。

請仔細閱讀男人:https://linux.die.net/man/3/scanf

相關問題