Mình tìm thấy nhiều cách đọc file bằng C++ vào std::string khác nhau, post tạm 1 cách đã, có thời gian post dần thêm.
Cách đầu tiên là đọc file bằng istreambuf_iterator. Ví dụ cụ thể:
File text.txt lưu với nội dung như sau:
nguyen chiem minh vu
123456789
(EOF)
Và đọc file như vầy:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream textfile("text.txt");
string s1; //store a line of file
for(istreambuf_iterator<char,char_traits<char> > it(textfile.rdbuf());
*it != '\n'; it++) {
s1 += *it; //append at end of string
}
cout << s1.data() << endl;
return 0;
}
Output:
nguyen chiem minh vu
Giả sử các bạn thay cái phần đọc file vào string thành như sau:
for(istreambuf_iterator<char,char_traits<char> > it(textfile.rdbuf());
it != istreambuf_iterator<char,char_traits<char> >(); it++) {
s1 += *it; //append at end of string
}
Thì output sẽ là:
nguyen chiem minh vu
123456789
Phần trên là một trong số những cách đọc file trong C++, bữa khác mình post thêm.