01/10/2018, 00:17

Mình sắp xếp trên file nhưng in ra bị lỗi

chào mọi người!!
hiện tại em đang làm 1 bài assignment lớn liên quan đến file. File chứa thông tin của các nhân viên trong công ty, trong đó có 1 phần là đọc file, sort mã nhân viên của công ty đó theo thứ tự tăng dần bằng bubble sort, nhưng yêu cầu là làm trực tiếp trên file. Do vậy e dùng fseek để thực hiện, đây là code của hàm sort mà em viết :

void sortbubble(FILE *f, char fname[20]){
	int n=0;
	employee a[1];
	employee b[1];
	f = fopen(fname,"rb");
	while( fread(&a[0],sizeof(employee),1,f) == 1)	n++;
	printf("co %d nhan vien
",n);
	fclose(f);
	f= fopen(fname,"wb");
	for(int i = 0 ; i< n ; i++)
		for(int j=n-1;j>i;j--){
			fseek(f,j*sizeof(employee),SEEK_SET);
			fread(&a[0],sizeof(employee),1,f);
			fseek(f,(j-1)*sizeof(employee),SEEK_SET);
			fread(&b[0],sizeof(employee),1,f);
                        
			if(a[0].code < b[0].code){
				fseek(f,j*sizeof(employee),SEEK_SET);
				fwrite(&b[0],sizeof(employee),1,f);
				fseek(f,(j-1)*sizeof(employee),SEEK_SET);
				fwrite(&a[0],sizeof(employee),1,f);		
			}
		}
	fclose(f);
} 

vậy mà khi in ra thông tin file thì bị lỗi, mn xem hàm fseek em dùng đã đúng chưa hay là code em có vđề gì với ạ??

Bài liên quan
0