Đọc File text đổ vào cây nhị phân tìm kiếm

Em đang thực hiện đọc 1 file text có chứa thông tin các độc giả của 1 thư viện(mã thẻ, họ, tên, phái, trạng thái thẻ) rồi đổ vào cây nhị phân tìm kiếm.

void LoadFile(treedocgia &p, DocGia dg[MAX]){
	ifstream fin("DANHSACHDOCGIA.txt");
	
	int  i = 0, code, state; char a[100], b[100], c[100], d[100];
	if(!fin.is_open()){
		cout<<"Khong mo duoc file"; exit(0);
	}
	else{
		while(!fin.eof()){ 
			fin >> code >> a >> b >> c >> d >> state;
			dg[i].mathe = code;
			strcpy(dg[i].ho, a);
			strcpy(dg[i].ten, b) ;
			strcpy(dg[i].phai, c);
			dg[i].trangthai = state;
			
			Insert_nodeDG(p, dg[i].mathe,dg, i);
			i++;
		}
	}
	fin.close();	
}

Các biến a, b em dùng để đọc họ và tên nhưng do họ và tên của độc giả dài ngắn khác nhau nên số lượng biến để đọc họ và tên không cố định được ạ, do gặp khoảng trắng giữa Họ.
Vd: Nguyễn Thị Văn A
Họ : Nguyễn Thị Văn; Tên : A.
Làm sao để đổ vào cây nhị phân chính xác với dữ liệu ban đầu ạ?
Em xin cảm ơn ạ!

Thị/Văn là chữ lót mà nhỉ.

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