Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
stenok
0 / 0 / 1
Регистрация: 23.09.2016
Сообщений: 13
1

Подскажите, где ошибка

15.02.2017, 14:02. Просмотров 288. Ответов 2
Метки нет (Все метки)

Это не вся программа, а только функция которая работает не корректно. При замене 'оценок=2'на любую другую, функция перезаписывает в файл по мимо что ты ввёл еще одну структуру но уже пустую.
скажите хоть куда смотреть ...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2017, 14:02
Ответы с готовыми решениями:

Где ошибка? подскажите
В С Удалить цифры 0, 3, 6, 9 из элементов массива. #include <stdio.h> int main() { int a,...

Подскажите,где ошибка?
Писал программу для вычисления НОД двух чисел,но так как я ещё начинающий,то это задание для меня...

Подскажите, где ошибка?
#include <stdio.h> int main(int argc, char *argv) { int a,b,; double n; printf("Enter a...

подскажите, где ошибка
Нужно посчитать количество повторений каждой буквы в произвольно введенном английском тексте и...

Пожалуйста, подскажите где ошибка!
Делал программу которая выводит значения функции на интервале... Но она работает не правильно и...

2
XZnts
12 / 12 / 0
Регистрация: 15.02.2017
Сообщений: 19
15.02.2017, 17:41 2
Цитата Сообщение от stenok Посмотреть сообщение
При замене 'оценок=2'на любую другую
О какой строке вообще речь?

Зачем нужен аргумент FILE *vedomost, если файл и открывается, и закрывается внутри функции и имя жестко зашито?
0
stenok
0 / 0 / 1
Регистрация: 23.09.2016
Сообщений: 13
15.02.2017, 18:02  [ТС] 3
XZnts,
Цитата Сообщение от XZnts Посмотреть сообщение
О какой строке вообще речь?
В вот этом файле
C
1
vedomost=fopen("file1.dat","rb+");
находится структура
структура имеет вид фамилия номер зачётки и четыре оценки
Цитата Сообщение от XZnts Посмотреть сообщение
FILE *vedomost,
нужен как указатель на файл
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2017, 18:02

Подскажите, где ошибка (указатель на функцию)
Дана программа в книге Кернигана и Ричи (5.11. Указатели на функцию) #include <stdio.h>...

Подскажите где ошибка (рекурсивная функция)
Не работают последних два условия. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include...

Подскажите где логика
1. Вопрос собственно такой, мне уже Anitsirh помог найти альтернативу, но всё-таки кто знает,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru