Làm sao để thao tác với tệp?

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
typedef struct hoc_sinh{ 
	char ten[20] ; 
	char phai[4] ; 
	int diem ; 
	char kq[4] ; 
} KieuHV;
/* Hàm nhập danh sách n học viên */
void nhapds ( int n, KieuHV *lop){ 
	for ( int i=0;i<n;i++){ 
		printf ("Nhap ho va ten nguoi thu %d : ", i); 
		fflush(stdin);
		gets(lop[i].ten);
		printf ("Phai (nam/nu):");
		fflush(stdin);
		gets(lop[i].phai);
		printf ("Nhap diem = ") ; 
		scanf ("%d%c*c", &(lop[i].diem));
		if (lop[i].diem>5)
			strcpy (lop[i].kq,"dau");
		else 
			strcpy (lop[i].kq, "rot");
	}
}
/* Hàm sắp xếp */
void sapxep ( int n , KieuHV *lop){
	int i , j ;
	KieuHV tam;
	for ( i=0 ; i<n; i++)
		for ( j=i+1 ; j<n; j++)
			if (lop[i].diem< lop[j].diem){ 
				tam = lop[i] ; 
				lop[i] = lop[j] ; 
				lop [i] = tam ;
			}
}
/* Hàm in danh sách */
void inds ( int n, KieuHV *lop){ 
	int i ;
	for ( i=0 ; i<n ; i++)
		printf ("\n %20s %5s%5d%5s", lop[i].ten, lop[i].phai, lop[i].diem, lop[i].kq);
}
int main(){
	int n;
	KieuHV *lop;
	FILE *file;
   printf ("Nhap so hoc sinh:") ; 
   scanf("%d",&n);
   lop = (KieuHV*)malloc(n*sizeof(KieuHV));
   nhapds(n,lop) ; 
   sapxep (n,lop); 
   inds(n,lop); 
   file=fopen("D:\dulieu.txt ","wb");
   for ( int i = 0; i<n ;i++){
	   fwrite(&lop[i],sizeof(KieuHV),1,file);

   }
   fclose(file);
    printf ("\nGhi du lieu xong.");
	return 0;
}

Sao mình ghi dữ liệu kiểu cấu trúc lên file soNguyen.txt,rồi sau đó mở file đó lên thì lại đọc không được.Mọi người giúp minh với.

Em ghi ở dạng binary mà @14520054

1 Like

Á chết em quên mất,thế mà cũng đi hỏi cho được.

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