Thắc mắc vòng lặp khi đọc file txt oop c++

Chào mọi người e mới học c++ và e có thắc mắc về việc đọc file txt.
Cụ thể là e muốn thêm n sinh viên vào SinhViên.txt mà không được trùng nhau mã SV.
Bác nào giúp e với al. E cảm ơn!!!

int n;
cout << "Ban muon them bao nhieu SV: ";
cin >> n;

SinhVien SV;
SV.hThiDSSV();
for (int i = 1; i <= n; i++) {
	cout << "\nThem Sinh vien thu " << i << endl;
	int maSV;
	cout << "Ma sinh vien:";
	cin >> maSV;

	fstream sv;
	sv.open("SinhVien", ios::in);
	int masv;
	string tenLopSV;
	sv >> masv >> tenLopSV;
	getline(sv, tenLopSV);
	while (!sv.eof()) {
		if (maSV > 0 && masv != maSV) {

			cout << "Ho ten: ";
			string hoTen;
			std::cin.ignore();
			getline(std::cin, hoTen);

			cout << "Lop: ";
			string lop;
			fflush(stdin);
			getline(std::cin, lop);

			SV = SinhVien(maSV, hoTen, lop);
			SV.ghiSV();

			cout << "THANH CONG." << endl << endl;
			break;
		}
		else {
			cout << "Ma sinh vien da ton tai. Vui long nhap lai!!!!"  << endl;
			break;
		}
		sv >> masv;
		getline(sv, tenLopSV);
	}

Bạn có dùng Danh sách liên kết (LinkedList) trong bài này không?

  1. Trước khi thêm, đọc các SV từ tập tin vào DSLK.
  2. Mỗi lần nhập SV mới thì tìm trong DSLK, để xét sự tồn tại.
  3. Nếu chưa có thì thêm SV vào DSLK.
  4. Lặp lại 2. và 3. đến khi thêm xong.
  5. Ghi DSLK vào tập tin.

Đọc 1 lần và ghi 1 lần. Hạn chế đọc/ghi lắt nhắt nhiều lần.
À ừm, mấy ổ SSD thì tuổi thọ phụ thuộc vào số lần đọc/ghi.

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