Nhờ mọi người giải thích giúp ạ

Ý tưởng của em là tạo 1 biến ‘rac’ để dùng getline lấy chuỗi của 1 dòng trong file text. Rồi tính độ dài của chuỗi, tùy theo độ dài mà nhập vào 2 mảng khác nhau. Nhưng em không hiểu tại sao biến ‘rac’ chỉ lấy được chuỗi 1 lần, qua lần lặp thứ 2 trở đi là nó không lấy chuỗi từ file nữa ạ ?

Chép mã lên đây thay cho hình nhé.


Sao lại là len - 2 nhỉ?
Ý tưởng của bạn là cho con trỏ về đầu dòng trước khi gọi phương thức Nhap() phải không?
Thế thì cho đoạn int pos = ... trước đoạn getline(cin... rồi sau đó seekg(pos) là xong, việc gì phải lằng nhằng cộng/trừ.

3 Likes

Đúng rồi ạ

{
	int i = 0;
	int j = 0;
	while (!cin.fail())
	{
		ChienBinh c;
		NongDan n;
		string rac;
		int pos = cin.tellg();
		getline(cin, rac);
		int len = rac.length();
		if (len == 7 || len == 8)
		{
			cin.seekg(pos);
			n.Nhap();
			b[i] = n;
			i++;
		}
		else
		{
			cin.seekg(pos);
			c.Nhap();
			a[j] = c;
			j++;
		}

	}
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?