Подскажите, где ошибка - C (СИ) (148480)

Узнай цену своей работы

Формулировка задачи:

Это не вся программа, а только функция которая работает не корректно. При замене 'оценок=2'на любую другую, функция перезаписывает в файл по мимо что ты ввёл еще одну структуру но уже пустую. скажите хоть куда смотреть ...
Листинг программы
  1. void find(FILE *vedomost)
  2. {
  3. char c;
  4. int s;
  5. long int i;
  6. vedomost=fopen("file1.dat","rb+");
  7. puts(" Vvedite 2 chtob vivesti info o dvoeshnikax: ");
  8. scanf("%d",&s);
  9. fread(&v1,sizeof(v1),1,vedomost);
  10. while (v1.balls1==s || v1.balls2==s || v1.balls3==s || v1.balls4==s)
  11. {
  12. if (v1.balls1==s || v1.balls2==s || v1.balls3==s || v1.balls4==s)
  13. {
  14. printf("\n familiya %s\n nomer za4etnoy knigki %d ",v1.name,v1.zachetka);
  15. printf("\nOcenka_#1:%d\nOcenka_#2:%d\nOcenka_#3:%d\nOcenka_#4:%d\n ",v1.balls1,v1.balls2,v1.balls3,v1.balls4);
  16. printf("\n Izmenit - y | Next - n");
  17. c=getch();
  18. if (c=='y')
  19. {
  20. printf("\nOcenka_#1: ");
  21. scanf("%d",&v1.balls1);
  22. printf("\nOcenka_#2:");
  23. scanf("%d",&v1.balls2);
  24. printf("\nOcenka_#3:");
  25. scanf("%d",&v1.balls3);
  26. printf("\nOcenka_#4:");
  27. scanf("%d",&v1.balls4);
  28. i=sizeof(v1);
  29. fseek(vedomost,-i,1);
  30. fwrite(&v1,sizeof(v1),1,vedomost);
  31. }
  32. fread(&v1,sizeof(v1),1,vedomost);
  33. }
  34. }
  35. fclose(vedomost);
  36. }

Решение задачи: «Подскажите, где ошибка»

textual
Листинг программы
  1. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут