em có làm 1 bài nhỏ về xử lý file nhưng không hiểu sao nó không chạy được,bác nào biết giúp em với em xin cảm ơn rất nhiều.
Code:
#include <stdio.h>
#include <conio.h>
typedef struct nhapso
{
int diem;
int ma;
}ns;
void nhapdulieu(ns mang[],int &n)
{
int i;
printf("\n nhap so mang : ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n Nhap phan tu thu%d : ",i+1);
scanf("%d%d",&mang[i].diem,&mang[i].ma);
}
}
void hienthi(ns mang[],int n)
{
int i;
printf("\n Nhung so vua nhap vao la: ");
for(i=0;i<n;i++)
{
printf("\n %d %d",mang[i].diem,mang[i].ma);
}
}
int ghifile(ns mang[],int n)
{
FILE *pt;
int i;
int check;
char tentep[100];
printf("\n Moi ban nhap ten tep: ");
fflush(stdin);
gets(tentep);
pt=fopen(tentep,"wb");
if(pt==NULL)
{
printf("\n Loi khong mo duoc tep.");
fclose(pt);
return 0;
}
for(i=0;i<n;i++)
{
check=fwrite(&mang[i],sizeof(ns),1,pt);
if(check==0)
{
printf("\n Loi ghi tep.");
fclose(pt);
return 0;
}
}
fclose(pt);
if( fclose(pt)==EOF)
{
printf("\n Loi khong the dong tep.");
}
return 1;
}
int docfile(ns mang[],int n)
{
FILE *pt;
char tentep[100];
int i;
printf("\n Moi ban nhap ten tep: ");
fflush(stdin);
gets(tentep);
pt=fopen(tentep,"rb");
if(pt==NULL)
{
printf("\n Loi khong the doc file.");
getch();
return 0;
}
for(i=0;i<n;i++)
{
fread(&mang[i],sizeof(ns),1,pt);
}
fclose(pt);
if(fclose(pt)==EOF)
{
printf("\n khong dong duoc file.");
}
return 1;
}
void main()
{
int n;
int check;
ns mang[10];
clrscr();
nhapdulieu(mang,n);
hienthi(mang,n);
check=ghifile(mang,n);
if(check==0)
{
printf("\n Khong the ghi duoc tep.");
}
check=docfile(mang,n);
if(check==0)
{
printf("\n Khong the doc du lieu tu tep.");
}
getch();
}