01/10/2018, 12:11
Lỗi Hàm getline trong C++
void nhapsach::xoasach()
{
string check;
cout<<"Moi Nhap Vao Ten Sach Muon Xoa:"<<endl;
getline(cin,check);
int size=Listsach.size();
for(int i=0;i<size;i++)
{
if(check==Listsach[i].Ten)Listsach.erase(Listsach.begin()+i);
};
system("pause");
}
mọi người giúp em xem em bị lỗi gì ạ,
em chọn mục xóa sách thì nó ngay lập tức thoát luôn ạ
mà em thay getline =cin thì lại chạy được ạ,
Bài liên quan
Vừa duyệt vừa xoá phần tử, như vậy có nguy hiểm không?
Ví dụ, ban đầu Listsach có 5 phần tử, xoá 1 phần tử ở giữa đi thì còn 4 phần tử, nhưng vòng lặp i chỉ số vẫn chạy đến i = 4, truy cập vào Listsach[4] -> truy cập ngoài mảng.