Προς το περιεχόμενο

Ερωτηση για edit εγγραφης σε Binary αρχειο στην C


antreas18

Προτεινόμενες αναρτήσεις

Δημοσ.

Εχουμε φτιαξει το παρακατω και ψαχνουμε να βρουμε τα λαθη που εχει και δεν γινεται η διορθωση.

 

Κομματι του κωδικα που υποτιθεται οτι κανει την διορθωση σε μια εγγραφη.

 

 

//DIORTHOSI STOIXEIWN

if (choice == 2) {

if( (fptr=fopen("mathitis.rec","rb+"))==NULL) /* open file */

{printf("Can't open file agents.rec"); exit(1);}

do {

printf("\nEnter AM: ");

gets(numstr);

 

 

οκ το εφτιαξα...μπορει να κλειδωθει το θεμα.

//mathitis.AM = atoi(numstr);

 

am = atoi(numstr);

//mathitis.AM;

 

offset=(am)*sizeof(mathitis);

if(fseek(fptr,offset,0)!=0)

{

printf("Can't move pointer there.");

getch();

exit(1);

}

fread(&mathitis,sizeof(mathitis),1,fptr);

//fclose(fptr);

if(mathitis.AM == am) {

//fclose(fptr);

//fptr=fopen("mathitis.rec","wb");

printf("\nEnter name: "); /* get name */

gets(mathitis.name);

printf("Enter bathmos1: "); /* get number */

gets(numstr);

mathitis.b1=atoi(numstr);

printf("Enter bathmos2: "); /* get height */

gets(numstr);

mathitis.b2=atoi(numstr);

printf("Enter bathmos3: "); /* get number */

gets(numstr);

mathitis.b3=atoi(numstr);

printf("Enter bathmos4: "); /* get height */

gets(numstr);

mathitis.b4=atoi(numstr);

printf("Enter bathmos5: "); /* get number */

gets(numstr);

mathitis.b5=atoi(numstr);

fwrite(&mathitis, sizeof(mathitis),1,fptr); /* write struct to file */

 

 

}

else

{

printf("\nStudent not found!\n");

}

 

 

 

printf("Edit another student (y/n)? ");

} while(getche()=='y');

 

fclose(fptr); /* close file */

getch();

}

 

 

 

ουσιαστικα γινεται η αναζητηση με βαση το αμ και μας παει εκει και του αλλαζουμε ονομα η βαθμους..

 

*Η δομη ειναι αυτη

 

struct

{

int AM;

char name[20];

int b1,b2,b3,b4,b5;

} mathitis;

 

οκ το εφτιαξα μπορει να κλειδωθει το θεμα!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...