Cách hoạt động của hàm getline
istream& getline (istream& is, string& str, char delim);
Em có một số thắc mắc về giá trị trả về của hàm getline, thì em đọc từng từ trong một text file vào str, tức là khi gặp kí tự khoảng trắng ’ ’ thì nó sẽ dừng lại, và đưa chuỗi vừa đọc được vào str. Em vẫn chưa hiểu là khi đến cuối dòng, vẫn có thể đọc được từ cuối cùng trong khi không có ’ ’ ở cuối.
Thêm nữa là em vẫn chưa hiểu giá trị trả về của hàm này để có thể thoát khỏi vòng lặp while. Mong mọi người giải đáp. Em xin cảm ơn mọi người.
string str;
int count = 0;
// Đọc từng dòng trong tệp tin vào str
while (getline(dataFile, str))
{
stringstream ss(str);
// Đếm số từ trong từng dòng
while (getline(ss, str, ' '))
count++;
}
Code này không đúng khi gặp nhiều khoảng trắng liên tiếp nhau.
getline
trả về stream, stream suy biến thành pointer (C++98) hay boolean (C++11): stream lỗi thì biến thành false.http://www.cplusplus.com/reference/ios/ios/operator_bool/
Mình hiểu rồi, cám ơn bạn