Подскажите, где ошибка - C (СИ) (148480)
Формулировка задачи:
Это не вся программа, а только функция которая работает не корректно. При замене 'оценок=2'на любую другую, функция перезаписывает в файл по мимо что ты ввёл еще одну структуру но уже пустую.
скажите хоть куда смотреть ...
void find(FILE *vedomost) { char c; int s; long int i; vedomost=fopen("file1.dat","rb+"); puts(" Vvedite 2 chtob vivesti info o dvoeshnikax: "); scanf("%d",&s); fread(&v1,sizeof(v1),1,vedomost); while (v1.balls1==s || v1.balls2==s || v1.balls3==s || v1.balls4==s) { if (v1.balls1==s || v1.balls2==s || v1.balls3==s || v1.balls4==s) { printf("\n familiya %s\n nomer za4etnoy knigki %d ",v1.name,v1.zachetka); printf("\nOcenka_#1:%d\nOcenka_#2:%d\nOcenka_#3:%d\nOcenka_#4:%d\n ",v1.balls1,v1.balls2,v1.balls3,v1.balls4); printf("\n Izmenit - y | Next - n"); c=getch(); if (c=='y') { printf("\nOcenka_#1: "); scanf("%d",&v1.balls1); printf("\nOcenka_#2:"); scanf("%d",&v1.balls2); printf("\nOcenka_#3:"); scanf("%d",&v1.balls3); printf("\nOcenka_#4:"); scanf("%d",&v1.balls4); i=sizeof(v1); fseek(vedomost,-i,1); fwrite(&v1,sizeof(v1),1,vedomost); } fread(&v1,sizeof(v1),1,vedomost); } } fclose(vedomost); }
Решение задачи: «Подскажите, где ошибка»
textual
Листинг программы
vedomost=fopen("file1.dat","rb+");
Объяснение кода листинга программы
- В этом коде используется функция fopen, которая открывает файл
file1.dat
для чтения и записи. - В качестве параметров функции fopen используются строки
file1.dat
иrb+
. - Строка
file1.dat
представляет собой имя файла, который нужно открыть. - Строка
rb+
представляет собой режим работы с файлом. Здесьr
означает чтение, аb+
означает, что файл будет открыт для чтения и записи, и текущая позиция чтения будет установлена в начало файла. - Результатом работы функции fopen является файловый указатель, который сохраняется в переменной vedomost.
- После работы с файлом, его необходимо закрыть с помощью функции fclose, чтобы освободить системные ресурсы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д