首頁 >後端開發 >C++ >EOF 如何與標準輸入流 (stdin) 配合使用以及如何手動引入它?

EOF 如何與標準輸入流 (stdin) 配合使用以及如何手動引入它?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-01 03:44:02682瀏覽

How does EOF work with Standard Input Stream (stdin) and how can it be manually introduced?

EOF 和標準輸入流(stdin)

stdin 指的是標準輸入流,通常代表使用者從控制台的輸入。與文件不同,stdin 沒有固有的文件結束 (EOF) 指示符。這意味著使用 fread 或 read 等函數從 stdin 讀取將無限期地繼續,直到手動引入某種形式的 EOF。

要理解此行為,請考慮以下循環:

while ((c = read(0, buffer, BUFSIZ)) > 0) {
    // Processing logic
}

這只要讀取函數傳回正值,循環就會繼續從標準輸入讀取字元。但是,如果沒有 EOF 指示器,循環將永遠不會結束。

要將 EOF,使用者可以不同方式模擬此標誌:

  • UNIX 系統: 按 Ctrl D。
  • Windows 系統: 按 Ctrl Z。

輸入此 EOF 指令後,程式的行為就像它已到達輸入檔的結尾。因此,上面提到的循環將終止。

編輯:對 Stdin 的 EOF 的澄清

根據最初的問題,人們可能想知道 stdin 是否本質上缺乏 EOF,如果必須使用 EOF 命令手動插入。答案是肯定的。

stdin,當不是從文件重定向而是直接從控制台獲取時,可以被視為“無限”文件,因為它的結尾是不確定的。因此,這個「文件」的結尾必須由使用者透過 EOF 命令手動傳達。

以上是EOF 如何與標準輸入流 (stdin) 配合使用以及如何手動引入它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn