Подскажите, где ошибка - 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, чтобы освободить системные ресурсы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д