Thừa dòng cuối cùng khi in nội dung file đã đọc

/* dữ liệu trong file có dạng
1, Nguyen, Thanh
2, Tran, Kha 
*/
void Doc_File_1_Sinh_vien(ifstream &filein , Sinhvien &sv){
	string str="\0" ;
	filein >> sv.mssv ;
	filein.ignore(2) ;
	getline(filein,str,',') ;
	for(int i=0 ; i<str.size()+1 ; i++){
		sv.ho[i] = str[i] ;
	}
	filein.ignore(1) ;
	//filein.seekg(0,ios_base::cur) ; 
	getline(filein,str) ; // '\n' co hoac khong
	for(int i=0 ; i<str.size()+1 ; i++){
		sv.ten[i] = str[i] ;
	}
}
// Doc file
void DocFile(Single_list &list ,char *TenFile){
	ifstream filein(TenFile) ; // khai bao va mo file
	if(filein.eof()){
		cout<<"Khong tim thay file de doc\n";
		return ;
	}
	while(!filein.eof()){
		Sinhvien sv ;
		Doc_File_1_Sinh_vien(filein,sv) ;
		Insert_Last(list,sv) ;
	}
	filein.close() ;
	cout<<"Da doc xong\n";
}

Xuất ra thì em bị thừa dòng cuối cùng ạ . Mn xem giúp em với ạ , Em cảm ơn!!

  1. Tập tin của bạn có dòng cuối cùng là dòng trống.
  2. Dùng do - while thay cho while.
2 Likes

Em làm ra rồi ,cảm ơn anh ạ

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