Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Не могу найти ошибку в функции

Ответить
Настройки темы
C/C++ - Не могу найти ошибку в функции

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: devl13
Дата: 09-12-2013
Задание: Запись имеет вид: название вуза, число студентов, количество факультетов. Добавить в конце файла информацию о трех новых вузах и посчитать общее число студентов.

Все написал, функция расчета общего числа не работает, не могу найти ошибку. Может кто подскажет что не правильно делаю.

Код: Выделить весь код
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<locale.h>
 
struct tov {char name[10];float c;int sum;} t1;
void input(FILE *);//создание нового файла
void print(FILE *);//просмотр файла
void app(FILE *);//добавление в файл
void kolich(FILE *);//подсчет общего количество студентов
main()
{setlocale(LC_CTYPE,"Russian");
 char c;
 FILE *tf;
 while (1)
 {system("CLS");
  puts("1 - Создание нового файла");
  puts("2 - Просмотр файла");
  puts("3 - Добавление в файл");
  puts("4 - Количество студентов");
  puts("0 - Выход");
   c=getch();
   switch(c)
   {case '1':input(tf);break;
    case '2':print(tf);break; 
    case '3':app(tf);break;
    case '4':kolich(tf);break;
    case '0':return 0;
    default:puts("Неверный режим");
  }
 }
}       
void input(FILE *tf)
{char ch;
 tf=fopen("file1.dat","wb");//открытие бинарного файла для записи
 system("CLS");
 printf("\n Ввод информации о вузе\n");
 do
 {printf("\n Название вуза: "); scanf("%s",&t1.name);
  printf(" Число студентов: "); scanf("%f",&t1.c);
  printf(" Количество факультетов: "); scanf("%d",&t1.sum);
  fwrite(&t1,sizeof(t1),1,tf);//запись в файл одной строкой t1
  printf("\n Закончить? y/n ");
  ch=getch();
 }
 while(ch != 'y');
 fclose(tf);
}
void print(FILE *tf)
{int i;
 system("CLS");
 tf=fopen("file1.dat","rb");//открытие бинарного файла для чтения
 i=1;
 fread(&t1,sizeof(t1),1,tf);//чтение из файла одной структуры t1
 while(!feof(tf))
 {printf("\n %1d Вуз: %1s | Количество студентов: %1.0f | Количество факультетов: %1d",i,t1.name,t1.c,t1.sum);
  fread(&t1,sizeof(t1),1,tf);
  i++;
 }
 getch(); 
}
void app(FILE *tf)
{char ch;
 tf=fopen("file1.dat","ab");//открытие бинарного файла для добавления
 system("CLS");
 printf("\n Название вуза \n");
 do
 {printf("\n Название: "); scanf("%s",&t1.name);
  printf(" Число студентов: "); scanf("%f",&t1.c);
  printf(" Количество студентов: "); scanf("%d",&t1.sum);
  fwrite(&t1,sizeof(t1),1,tf);
  printf(" Закончить? y/n ");
  ch=getch();
 }
 while(ch != 'y');
 fclose(tf);
}     
void kolich(FILE *tf)
{ int sum;
  tf=fopen("file1.dat","rb");
  sum=1;
  fread(&t1,sizeof(t1),1,tf);
  while (!feof(tf))  
  {
      sum++;
  }
  printf("Количество:",sum);
  getch();
  fclose(tf);  
}

Отправлено: 20:07, 09-12-2013

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


дык у тебя её зациклить должно пока компу не надоест. Смотри внимательно, что в цикле написал. Пройдись отладчиком

Отправлено: 21:22, 09-12-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Не могу найти ошибку в функции

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [решено] Неправильно работает код. Не могу найти ошибку. bangybam Программирование и базы данных 9 30-10-2012 15:36
CMD/BAT - [решено] самодельный таймер - не могу найти ошибку в коде элькхар Скриптовые языки администрирования Windows 4 24-10-2012 22:37
CMD/BAT - Не могу найти ошибку Dremuk Скриптовые языки администрирования Windows 1 28-01-2010 15:35
Разное - Обработка массивов данных, программа на паскале. Не могу найти ошибку в программе yulia_hoi Программирование и базы данных 6 08-01-2010 14:50
JavaScript, не могу найти ошибку modem Вебмастеру 3 01-03-2005 15:08




 
Переход