using namespace std;
int main()
{
ifstream fi(“inp.txt”);
string delimiter = "; ";
while (!fi.eof())
{
string s;
getline(fi, s);
size_t pos = 0;
string token;
while ((pos = s.find(delimiter)) != string::npos) {
token = s.substr(0, pos);
cout << token << endl;
s.erase(0, pos + delimiter.length());
}
cout << s << endl;
}
fi.close();
}
Đầu tiên bạn sử dụng hàm getline để lấy toàn bộ chuỗi trên dòng đang xét. Sau đó split (chia) chuỗi vừa lấy vào thành nhiều chuỗi con mà không lấy phần ngăn cách là "; " (phần ngăn cách được gán trong biến kiểu chuỗi tên là delimitor). Biến chuỗi tên token dùng để lưu giá trị từng chuỗi con sau khi đã được chia; nếu bạn muốn chuyển nó thành kiểu số nguyên thì thêm int(token) vào biến nào đó tuỳ bạn. Sau đó cho một vòng lặp chạy từ đầu đến cuối chuỗi, gặp phần ngăn cách thì gán giá trị từ đầu chuỗi đến đó (không bao gồm phần ngăn cách) vào biến token rồi xoá phần đó (bao gồm phần ngăn cách) trong chuỗi chính. Cái hàm eof() có công dụng giúp nhận biết đã đọc đến cuối file rồi chưa, có kiểu bool, trả về true khi đã đến cuối file và false là ngược lại.