Ý 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 ạ ?
Nhờ mọi người giải thích giúp ạ
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++;
}
}
}