首頁 >後端開發 >C++ >在 C 中如何在沒有明確循環的情況下讀取 stdin 直到 EOF?

在 C 中如何在沒有明確循環的情況下讀取 stdin 直到 EOF?

Susan Sarandon
Susan Sarandon原創
2024-11-17 04:01:03823瀏覽

How Can I Read stdin Until EOF in C   Without Explicit Loops?

從標準輸入捕獲輸入直到EOF 而不循環

從標準輸入讀取輸入直到檔案結束(EOF) 是常見的C編程中的任務。通常,使用循環來實現此目的,但在某些情況下,可能需要非循環方法。

無循環的解決方案

不幸的是,沒有單一的解決方案,C 中的非循環函數,可以從 stdin 讀取輸入直到 EOF。但是,將輸入運算子和C 字串操作結合提供了一種解決方法:

char input[1000];
cin.getline(input, 1000);
while (cin.eof() == false) {
    cout << input << endl;
    cin.getline(input, 1000);
}

此方法使用cin.getline() 將最多1000 個字元從stdin 讀取到輸入數組中。然後它使用 cin.eof() 檢查是否已達到 EOF。如果不是,它將把輸入列印到控制台並重複該過程,直到遇到 EOF。

最佳基於循環的方法

如果非循環解決方案不是可行或理想的情況下,最好的基於循環的方法是使用std::getline () 函數:

string line;
while (getline(cin, line)) {
    // Process the line
}

此方法進入一個循環,使用getline() 讀取輸入行,直到檔案末端已達到。 getline() 當輸入失敗或遇到 EOF 時傳回 false,導致迴圈終止。

以上是在 C 中如何在沒有明確循環的情況下讀取 stdin 直到 EOF?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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