Cin.eof意思
cin.eof()
是一個C++編程中的函式調用,它用於檢查標準輸入流 cin
(即鍵盤輸入)是否到達了檔案結束標誌(end-of-file,簡稱 EOF)。
在C++中,cin
是一個 istream 對象,它代表標準輸入流。當用戶通過鍵盤輸入數據時,這些數據會進入 cin
流。eof
是一個成員函式,它返回一個布爾值,表示是否到達了輸入流的末尾。
如果 cin.eof()
返回 true,表示輸入流已經到達了檔案結束標誌,也就是說,用戶沒有輸入任何數據,或者已經輸入了所有的數據,按下了 Enter 鍵,導致輸入流結束。
下面是一個簡單的例子,展示了如何使用 cin.eof()
:
#include <iostream>
using namespace std;
int main() {
int number;
while (!cin.eof()) { // 只要沒有到達檔案結束標誌,就一直循環
cin >> number; // 嘗試讀取一個整數
if (cin.fail()) { // 如果讀取失敗,可能是由於輸入了無效數據
cin.clear(); // 清除錯誤狀態
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // 忽略無效數據和換行符
}
}
cout << "End of file reached." << endl;
return 0;
}
在這個例子中,程式會一直讀取整數,直到用戶按下 Enter 鍵不輸入任何數據,或者關閉了輸入流。然後,程式會輸出一條訊息,表示輸入流已經結束。
需要注意的是,cin.eof()
應該在 cin
操作之後立即檢查,因為 eof
不會設定 cin
的錯誤狀態,而是在讀取操作失敗時設定。這意味著,如果你在 cin
操作之前檢查 eof
,它可能不會返回正確的狀態。