c de dosya işlemleri
once 3-5 tane ekleme yapıyorum ardından goruntuleme yapıyorum ve sorunsuz ama sonrasında bı tane ögrenci sıldıkten sonra tekrar goruntuleme yapınca hata alıyorum
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
int no;
char name[20];
float gpa;
}student;
int main (){
int choice;
int stdno;
FILE *fp;
FILE *fpnew;
fp=fopen("students2.dat","ab+");
student temp;
while(1){
printf("\n1-add student \n2-display student \n3-delete student : ");
scanf("%d",&choice);
switch(choice){
case 1:
fseek(fp,0,SEEK_END);
printf("enter number: ");
scanf("%d",&temp.no);
printf("enter name: ");
scanf("%s",temp.name);
printf("enter gpa: ");
scanf("%f",&temp.gpa);
fwrite(&temp,sizeof(student),1,fp);
fflush(fp);
break;
case 2:
fseek(fp,0,SEEK_SET);
fread(&temp,sizeof(student),1,fp);
while(!feof(fp)){
printf("%d %s %.2f\n",temp.no,temp.name,temp.gpa);
fread(&temp,sizeof(student),1,fp);
}
break;
case 3:
fseek(fp,0,SEEK_SET);
fpnew=fopen("students2_new.dat","wb");
printf("enter number of the student: ");
scanf("%d",&stdno );
fread(&temp,sizeof(student),1,fp);
while(!feof(fp)){
if(temp.no != stdno){
fwrite(&temp,sizeof(student),1,fpnew);
fflush(fpnew);
}
fread(&temp,sizeof(student),1,fp);
}
fclose(fp);
fclose(fpnew);
remove("students2.dat");
rename("students2_new.dat","students2.dat");
break;
}
}
return 0;
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!