關於scanf 函式返回值及EOF

2021-10-03 13:52:16 字數 496 閱讀 6181

scanf() 函式返會乙個整數值, 該值等於scanf() 成功讀取的項數或者eof

#include

intmain

(void

)

若輸入為兩個數,則輸出 2(不是int型, 會強制轉化為int型)

若輸入為:2 s, 則輸出為1(即成功讀入一項)

若輸入為 : s s, 則輸出為0(即成功讀入0項)

eofeof(end of file),檔案結尾, 通常eof定義在stdio.h 檔案中 #define eof (-1)

scanf() 函式檢測到檔案結尾或錯誤時,便返回eof

許多計算機系統把一行開始處的ctrl+z 識別為檔案結尾訊號,一些系統把任意位置的ctrl+z解釋為檔案結尾訊號。在linux和unix系統中,在一行開始處按下ctrl+d會傳輸檔案結尾訊號

在題庫中會經常會用下面類似句子來迴圈輸入。

while(scanf("%d",&value) != eof)

關於scanf的返回值

在a題的時候,我們經常會在while 語句中寫scanf的返回值,例如while scanf d x 1 這樣的語句,今天我們就來說關於scanf的返回值問題。眾所周知scanf 返回的是輸入個數,但當輸入不匹配或者格式化引數與實參不匹配時,scanf又是如何返回引數值的,我們來研究研究 我們先看如...

scanf 函式的返回值

1.scanf 函式是有返回值的,它的返回值可以分成三種情況 1 正整數,表示正確輸入引數的個數。例如執行 scanf d d a,b 如果使用者輸入 3 4 可以正確輸入,返回2 正確輸入了兩個變數 如果使用者輸入 3,4 可以正確輸入a,無法輸入b,返回1 正確輸入了乙個變數 2 0,表示使用者...

關於eof和scanf返回值

eof不是乙個字元或者數字什麼的,而是scanf 函式的乙個返回值。所以scanf c c 再判斷 c eof 的做法是無效的,因為scanf 根本不會把eof當作乙個字元寫進c 正確的判斷條件應該寫作以下形式 scanf c c eof 可以看出eof就是scanf 的返回值 下面提供用getch...