從標準輸入捕獲輸入直到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中文網其他相關文章!