[英]ifstream eof function (C++)
我有以下代碼:
string a = "D:\\Users\\user-pc\\Desktop\\testing\\a.txt";
ifstream f;
/*edit*/ string line;
/*edit*/ getline(f, line);
f.open(a);
if ( f.eof() )
cout << "ended";
else
cout << "nope"
以及沒有任何內容的文件“ a.txt”。
輸出為否,始終為否。 我不明白。我用錯了嗎?
編輯:仍然.eof()不起作用
std::basic_istream<...>::eof()
僅在最近提取將流狀態中的相應位設置為適當時返回true。 構造文件流時,其流狀態始終為std::ios_base::goodbit
。
一種替代方法是檢查下一個可用字符是否為EOF字符:
if (f.peek() == std::char_traits<char>::eof())
只有在讀取嘗試讀取文件末尾之后才設置eofbit錯誤狀態標志。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.