trong file INPUT.txt có:
nguyenvana
nguyenvanb
nguyenvanc
lệnh đọc file là
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int main()
{ifstream filein("INPUT.txt");
string str;
int n=1;
while(filein.eof()==false)
{cout << "Day la dong thu: "<< n<< endl;
getline(filein, str);
cout << "Ho ten: "<<str<< endl;
n++;
}
/*n=1; // gọi lần nữa
filein.seekg(0,ios::beg);
while(filein.eof()==false)
{getline(filein, str);
cout << "Day la dong thu: "<< n<< endl;
cout << "Ho ten: "<<str<< endl;
n++;
Sleep(1000);
}*/
filein.close();
system("pause");
return 0;}
OUTPUT:
Day la dong thu: 1
Ho ten: nguyenvana
Day la dong thu: 2
Ho ten: nguyenvanb
Day la dong thu: 3
Ho ten: nguyenvanc
Day la dong thu: 4
Ho ten:
mọi người cho tôi hỏi ở đoạn code trên tại sao lại xuất hiện dòng thứ 4 với họ tên bị bỏ trống vậy, nếu đúng thì ở dòng thứ 3 lệnh eof() sẽ cho giá trị true và kết thúc vòng lặp rồi chứ, còn nữa, nếu tôi bỏ dấu comment ở chổ ‘gọi lần nữa’ và cho các lệnh trong đó chạy, vòng lặp ở chỗ ‘gọi lần nữa’ sẽ chạy vô hạn với OUTPUT là:
Day la dong thu: 1
Ho ten:
Day la dong thu: 2
Ho ten:
Day la dong thu: 3
Ho ten:
......
tôi đã cho con trỏ vị trí trong file quay lại đầu file để đọc bằng hàm seek(0, ios::beg), nếu đúng như thế thì vòng lặp này sẽ chạy giống giống như vòng lặp ở trên nhưng nó lại chạy đến vô hạn, mà có một cái nữa, cứ cho là nó chạy đến vô hạn đi thì tại sao ở dòng 1,2,3 nó không in ra nguyenvana, nguyenvanb, nguyenvanc mà lại bỏ trống, không lẽ lệnh seek(0, ios::beg) không hoạt động, tui mới học về đọc file chưa được bao lâu nên còn nhiều cái chưa biết, mọi người có thể giải thích cho tôi chứ