| #include<stdio.h>
|
| #define n 3
|
| struct REC{unsigned id;
|
| char name[20];
|
| unsigned mark;};
|
| int main()
|
| {FILE *out,*in;
|
| REC rec;
|
| int flag, sz=sizeof(REC);
|
| long len,kol,n;
|
| if((out=fopen("mark.txt","wb"))==NULL)
|
| {perror("Выходной файл не открыт"); return 1; }
|
| do{
|
| puts("Введите № записи, фамилию, оценку(0..5)");
|
| scanf("%d",&rec.id);
|
| gets(rec.name);
|
| scanf("%d",&rec.mark);
|
| fwrite(&rec,sz,1,out);
|
| puts("Продолжить ввод? Да-1, Нет-0");
|
| scanf("%d",&flag);
|
| }while(flag);
|
| fclose(out);
|
| if((in=fopen("mark.txt","rb"))==NULL)
|
| {perror("Входной файл не открыт"); return 2;}
|
| fseek(in,0,SEEK_END);
|
| len=ftell(in);
|
| kol=len/sz;
|
| printf("В файлі %d записів
", kol);
|
| puts("Введіть номер запису для читання:");
|
| scanf("%ld",&n);
|
| if(n>0&&n<=kol)
|
| {fseek(in,(i-1)*sz, SEEK_SET);
|
| fread(&rec,sz,1,in);
|
| printf("id=%d name: %s ", rec.id_rec,rec.name);
|
| printf("mark: %d
",rec.mark); }
|
| else puts("Поза файлом!");
|
| fclose(in);
|
| return 0; }
|
| |
| |
| |