int edit char file функция редактирования FILE struct info puipl int n

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int edit(char* file) /*функция редактирования */
{
FILE *f;
struct info puipl;
int num;
system("cls");
f=fopen(file,"w+b"); /*открытие файла в режиме записи */
if(!f)
{
printf("opening error!!!\n");
return 1;
}
printf("Enter number of puipl whose results you want to sort\n");
scanf("%d",&num);
fseek(f,(num-1)*sizeof(puipl),SEEK_SET); /*смещаю курсор на начало той строки,которую хочу редактировать */
fread(&puipl,sizeof(puipl),1,f); /*читаю то,что есть в той строке */
puts("Surname"); /*далее изменяю данные */
scanf("%s",&puipl.sn);
puts("Math");
scanf("%d",&puipl.mark[0]);
puts("Rus");
scanf("%d",&puipl.mark[1]);
puts("Engl");
scanf("%d",&puipl.mark[2]);
puts("Dop");
scanf("%d",&puipl.mark[3]);
fwrite(&puipl,sizeof(puipl),1,f);/*по идее должен записать,но выходит лажа */
fclose(f);
return 1;
}