Подскажите, где ошибка - 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+");

Объяснение кода листинга программы

  1. В этом коде используется функция fopen, которая открывает файл file1.dat для чтения и записи.
  2. В качестве параметров функции fopen используются строки file1.dat и rb+.
  3. Строка file1.dat представляет собой имя файла, который нужно открыть.
  4. Строка rb+ представляет собой режим работы с файлом. Здесь r означает чтение, а b+ означает, что файл будет открыт для чтения и записи, и текущая позиция чтения будет установлена в начало файла.
  5. Результатом работы функции fopen является файловый указатель, который сохраняется в переменной vedomost.
  6. После работы с файлом, его необходимо закрыть с помощью функции fclose, чтобы освободить системные ресурсы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5