在程式設計中,常見的輸入來源是標準輸入流(stdin),它從使用者鍵盤讀取輸入。然而,確定使用者何時完成輸入資料並到達文件末尾 (EOF) 有時可能具有挑戰性。
stdin 有 EOF 嗎?
預設, stdin 本質上沒有 EOF。這意味著從 stdin 讀取的程式將無限期地繼續,等待用戶的更多輸入。
將EOF 加入到stdin
如果需要手動模擬EOF在stdin 上,兩種常見的方法是:
範例:
以下程式碼片段使用fread 從stdin 讀取數據,並使用Ctrl D 檢查EOF:
<code class="c">#include <stdio.h> int main() { char buffer[BUFSIZ]; int c; while ((c = fread(buffer, sizeof(char), BUFSIZ, stdin)) > 0) { // Process input... } return 0; }</code>
當使用者按下Ctrl D 時,fread() 函數將傳回-1,表示檔案結束。這會觸發 while 迴圈的結束。
注意:
需要注意的是,上述 EOF 模擬方法依賴系統,並且可能無法在不同系統上一致地工作。所有平台。
以上是如何在標準輸入 (stdin) 上模擬 EOF?的詳細內容。更多資訊請關注PHP中文網其他相關文章!