Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: AI\EKCAH^P (29.05.2009 в 19:24) Используя функции и режим меню, создать файл из 10 структур, просмотреть файл, добавить в файл новую информацию , применяя режим прямого доступа. Структура имеет вид: фамилия спортсмена, его номер, количество набранных очков. Поменять местами в файле записи о первых двух спортсменах. Все сделал, а как поменять местами в файле записи о первых двух спортсменах понятия не имею. Помогите кто может. Заранее благодарен.
#include<stdio.h> #include<conio.h> #include<string.h> struct sport{char name[10];int number;int kol;}sp; void input(FILE *); void print(FILE *); void app(FILE *); void find(FILE *); main() { char c; FILE *tf; while (1) { puts("1-novuy fail"); puts("2-prosmotr faila"); puts("3-dobavlenie v fail"); puts("4-poisk i izmenenie"); puts("0-vyhod"); c=getch(); switch(c) {case '1':input(tf); break; case '2':input(tf);break; case '3':input(tf);break; case '4':input(tf);break; case '0':input(tf);break; default : puts("nevernuy regim"); } } } void input(FILE *tf) {char ch; tf=fopen("FILE1.dat","wb"); printf("\n vvedite informaciu o sportcmene \n"); do { printf("\n familiya: "); scanf("%s",sp.name); printf(" nomer: "); scanf("%d",&sp.number); printf(" kolichestvo ochkov: "); scanf("%d",&sp.kol); fwrite(&sp,sizeof(sp),1,tf); printf("\n Zakonchity ? y/n"); ch=getch(); } while (ch != 'y'); fclose(tf); } void print(FILE*tf) { int i; tf=fopen("file.dat","rb"); i=1; fread(&sp,sizeof(sp),1,tf); while(!feof(tf)) {printf("\n %3d familiya %10s number %6d kolichestvo ochkov %4d ",i,sp.name,sp.number,sp.kol); fread(&sp,sizeof(sp),1,tf); i++; } getch(); } void app(FILE *tf) {char ch; tf=fopen("file1.dat","ab"); printf("\n vvedite informaciu o sportcmene \n"); do { printf("\n familiya: "); scanf("%s",sp.name); printf(" nomer: "); scanf("%d",&sp.number); printf(" kolichestvo ochkov: "); scanf("%d",&sp.kol); fwrite(&sp,sizeof(sp),1,tf); printf("\n Zakonchity ? y/n"); ch=getch(); } while (ch != 'y'); fclose(tf); } void FIND(FILE*tf) {char c, sport[10]; long int i; tf=fopen("file1.dat","rb+"); puts(" Familiya sportcmena: "); gets(sport); fread(&sp,sizeof(sp),1,tf); while (!feof(tf)) {if (strcmp(sp.name,sport)==0) {printf(" familya %10s number %6.2d kolichestvo ochkov %d",sp.name,sp.number,sp.kol); printf("/n Izmenity ? y/n"); c=getch(); if (c=='y') {printf("\n kolichestvo: "); scanf("%d",&sp.kol); printf("\n number: "); scanf("%d",&sp.number); i=sizeof(sp); fseek(tf,-i,1); fwrite(&sp,sizeof(sp),1,tf); } } fread(&sp,sizeof(sp),1,tf); } fclose(tf); }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: